オペレーティングシステムごとにDST(夏時間)を異なる方法で処理しているようです。私はCisco IOSのアプローチが本当に好きです。非常に簡単で、DSTが開始および終了する日時を変更できます。たとえば、
clock summer-time EDT recurring 2 Sun Mar 2:00 1 Sun Nov 2:00 60
..3月第2日曜日2時に時計を60分前に設定し、11月第1日曜日2時に時計を60分後に設定します。 Linuxは夏時間をどのように処理しますか?ディレクトリtzdata
にインストールされているタイムゾーンデータファイルを含むパッケージがあることを知っています。/usr/share/zoneinfo/
これらのファイルはどのユーティリティでどのように使用されますか?ファイルにUTC(2)とタイムゾーン名(EETとEEST)の変更を確認できます。
T60:~# strings /usr/share/zoneinfo/posix/Europe/Helsinki
TZif2
HMT
EEST
TZif2
EEST
EET-2EEST,M3.5.0/3,M10.5.0/4
T60:~#
そして、M3
おそらく3ヶ月かM10
10ヶ月ほどになったでしょう?また、オフセットをどこかに割り当てる必要があります。たとえば、iOSでは、DSTが発生したときに時計が60分ではなく90分または120分ずつ移動するように設定できます。
ベストアンサー1
抜粋
ファイル形式
tzデータベースは、人間が読める形式でルールとゾーン変換を一覧表示する一連のテキストファイルとして公開されています。使用すると、これらのテキストファイルはプラットフォームに依存しないバイナリセット(タイムゾーンごとに1つ)でコンパイルされます。参照ソースコードには、zic(Zone Information Compiler)と呼ばれるコンパイラと、これらのファイルを読み取り、localtime()やmktime()などの標準APIで使用されるコードが含まれています。
追加の検索では、stackoverflowに次のタイトルのQ&Aが表示されました。タイムゾーンデータベースファイル形式の問題、ファイル形式に関する追加情報が含まれています。