タイムゾーンをUTC
に設定してサーバーを実行しています 。それは一般的に良い習慣のようでした(私が間違っている場合は訂正してください)。
とにかく、scp
するために、私が接続しているサーバーの1つ ファイル、EDT
で実行されています コピーする必要のあるファイルを/path/to/filename/data20120913
の形式で保存します
rsync
を試してみました findの-mtime -1
のようなものを使用するファイル 前日に変更されたファイルのフラグを立てましたが、運がありませんでした。
scp
を使用してもかまいません 当日のファイルをコピーしますが、現時点では、date +%Y%m%d
を実行する4時間のウィンドウがあります。 サーバーごとに異なる日が与えられ、それは私を少し悩ませます。
man date
を見る 時刻をUTC
として出力できることがわかります 、しかし、EDT
のような別のタイムゾーンとして出力する方法がわかりません。
GNU
のようなものも使用できると思います 日付拡張子date -d 20100909 +%s
エポックから秒単位で日付を取得するには、手動の4 * 60 * 60
を適用します 2番目の計算で、それを日付としてレンダリングする方法を確認します。ただし、夏時間が始まると、それでも1時間オフになります。
YYYYMMDD
で日付を出力する簡単な方法はありますか EDT
の形式 UTC
に設定されているサーバー上 ?
承認された回答:
クエリの期間にタイムゾーンを設定できます。つまり、次のようになります。
TZ=America/New_York date
TZ
の間の空白に注意してください 設定とdate
指図。ボーンのようなrc
-シェルのように、TZ
を設定します コマンドライン専用の変数。他のシェルでは(csh
、tcsh
、fish
)、いつでもenv
を使用できます 代わりにコマンド:
env TZ=America/New_York date
tl; dr
Linuxシステムの場合。タイムゾーンは、/usr/share/zoneinfo
のファイルで定義されています ディレクトリ。この構造は、創設者を称えるために「オルソンデータベース」と呼ばれることがよくあります。
各タイムゾーンのルールは、テキストファイルの行として定義され、バイナリファイルにコンパイルされます。そのようにコンパイルされた行は、ゾーン名を定義します。ゾーンが適用されるデータと時間の範囲。標準時のUTCからのオフセット。該当する場合は、夏時間への移行および夏時間からの移行の発生方法を定義するための表記。
たとえば、ディレクトリ「America」には、ファイルAmerica/New_York
にニューヨークに必要な情報が含まれています。 上記のように。
存在しないゾーン(ファイル名)の指定は黙って無視され、UTC時刻が報告されることに注意してください。たとえば、これは誤った時刻を報告します:
TZ="America/New York" date ### WRONG ###
SUSv3またはPOSIX-2001として知られるSingleUNIXSpecificationバージョン3は、移植性のために、タイムゾーンの説明を識別する文字列はコロン文字で始める必要があると述べています。したがって、次のように書くこともできます:
TZ=":America/New_York" date
TZ=":America/Los_Angeles" date
記述ファイルへのパス名を使用してタイムゾーンを指定する代わりの方法として、SUSv3はPOSIXモデルを記述します。この形式では、文字列は次のように定義されます。
std offset [dst[offset][,start-date[/time],end-date[/time]]]
ここで、std
は標準のコンポーネント名であり、dst
夏時間です。それぞれの名前は3つ以上の文字で構成されています。 offset
本初子午線の西のタイムゾーンでは正であり、子午線の東のタイムゾーンでは負です。オフセットは、UTC(以前はGMTと呼ばれていました)を取得するために現地時間に追加されます。 start
およびend
時間フィールドは、標準/昼光遷移がいつ発生するかを示します。
たとえば、米国東部では、標準時間はUTCより5時間早く、EST5EDT
を指定できます。 America/New_York
の代わりに 。ただし、これらの代替案は、特に米国以外のゾーンでは常に認識されているわけではなく、避けるのが最善です。
HP-UX(SUSv3準拠のUNIX)は、/usr/lib/tztab
のテキストルールを使用します EST5EDT、CST6CDT、MST7MDT、PST8PDTなどのPOSIX名。このファイルには、Olsonデータベースと同様に、各タイムゾーンのすべての履歴ルールが含まれています。
注: 次のディレクトリを調べると、すべてのタイムゾーンを見つけることができるはずです:/usr/share/zoneinfo
。