私が本当に望むのは、UTCの日付/時刻を柔軟に使用して日付と時刻をフォーマットすることですstrftime
。 (この例では。)これはうまくいきますか?'%Y %m %d-%H:%M:%S%z'
2022 02 14 16:21:35-0800
2022 02 15 00:21:35
strftime
(コンテキスト:偽のバージョンと一致する形式を取得しようとしています。カスタムgit log --date=format
形式を定義するオプションはシステムに委任されています。私はMac OSX Montereyにあり、bashを使用しています。編集:ソリューションはもう少し複雑です。使用; これを反映するために問題の説明が変更されました。go.mod
--date=format:'%foo%bar'
strftime
答え1
C関数はstrftime()
日付/時刻形式のみを指定します。gmtime()
UTC時間または現地時間を取得したlocaltime()
結果を渡すことができます。
date
デフォルトでは現地時間が表示されますが、このオプションを使用するとUTC時間が表示されることを示します-u
。
localtime()
time()
指定されたタイムゾーンの環境変数の内容に基づいて、指定されたエポック時間(返されたとおり)のローカル時間を計算します$TZ
。この変数が定義されていない場合、システムごとに動作が異なります。
ツールが常に現地時間を表示してワールドタイムに切り替えるように指示されない場合は、UTCがタイムゾーンオフセットを$TZ
指定している環境で常にツールを呼び出すことができます。
TZ=UTC0 date
次の効果があります。
date -u
TZ=UTC0
UTC
UTCにゼロのオフセットを持つロケールが定義されているため、UTC時間と与えられdate +%Z
た「UTC」を取得できるため、その値を使用すると次のように$TZ
動作localtime()
しますgmtime()
。
git
sの場合は、日付がコミットに保存されている時間帯ではなく、現地時間で表示されるように追加する必要があり--date=format
ます。-local
だから:
TZ=UTC0 git log --date=format-local:'%Y %m %d-%T'