追加読書

追加読書

TZから入力を受け取り(+/-)HHMM形式に変換したいです。しかし、UTCと比較するのではなく、現地時間と比較したいと思います。どうすればいいですか?

答え1

これはbashコマンドdateとフォーマット指定子を使用する非常に簡単な練習です(広く使用されていますが、皮肉なことにdate標準化されていません)。 strftime()%z

TZ="アジア/東京" 日付+"%z"

これにより得ることができます現在のもちろん、UTCオフセットは夏時間の切り替えを考慮します。さまざまな実装を使用dateすると、システムクロックを設定せずに現在の時間ではなくランダムなタイムスタンプを表示できるため、年中異なる時間のUTCオフセットを取得できます。

例:FreeBSDdateにはオプションがあり、-j入力タイムスタンプを厳密な降順で取得します(使用しない場合はデフォルト)。-f

%TZ="ヨーロッパ/リスボン" 日付-j +"%z" "202401060000"
+0000
%TZ="ヨーロッパ/リスボン" 日付-j +"%z" "202407060000"
+0100
%

zdumpたとえば、いくつかのツールがありますが、dateここではコマンドが最も明確です。

追加読書

関連情報