私の質問は、夏時間(DST)とLinuxで次の動作が正常かどうかについてです。TZ
タイムゾーンを指定するには、POSIX変数を使用します。
次の例を使用してください。これマニュアルページでは、TZ変数を次のように設定しました。
export TZ="NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"
この環境変数を設定したら、それを使用してdate
時間を設定し、夏時間に合わせて時計がカチカチするのを見ることができます。それはうまくいきました(名前がに変わり、NZST
1NZDT
時間の睡眠を「失いました」)。
Sun Oct 4 01:59:57 NZST 2015
Sun Oct 4 01:59:58 NZST 2015
Sun Oct 4 01:59:59 NZST 2015
Sun Oct 4 01:59:59 NZST 2015
Sun Oct 4 03:00:00 NZDT 2015
Sun Oct 4 03:00:01 NZDT 2015
ただし、夏時間が終了する前に設定すると、date
奇妙な動作が発生します。たとえば、次のように時間を設定した場合:
date --set="20 MAR 2016 0:59:50"
Sun Mar 20 00:59:50 NZDT 2016
それでも問題ありませんが、時計を少し前にすると1:00:50
(午前1時直後に)問題が発生します。
date --set="20 MAR 2016 1:00:50"
Sun Mar 20 01:00:50 NZST 2016
私たちは飛び降りてすぐにNZDT
戻ってきました。NZST
しかし、システムをリセットして0:59:50
(忍耐を持って)待つと、あまりにも早く飛び出さずにNZDT
適切な時間にロールバックされます。NZST
これが正常なシステム動作ですか?
答え1
問題は、変換の処理方法にあるのではなく、コマンドで指定されたタイミングがdate --set="20 MAR 2016 1:00:50"
不明であると思います。
つまり、この時間は、夏時間が終了する前に最初に2回発生し、時計が1時間後に移動したときに発生します。残念ながら、発生する時間を指定する方法がわかりません。明確にするためにタイムゾーンを含めることはできますか?