tzdataデータベースはどの程度正確に使用されますか?


10

オペレーティングシステムが異なると、夏時間(DST)の扱いも異なります。非常にシンプルで、DSTの開始と終了の日時を変更できるCisco IOSのアプローチが本当に気に入っています。例えば:

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はDSTをどのように処理しますか?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ヶ月でM1010ヶ月?さらに、オフセットもどこかに指定する必要があります。たとえば、IOSでは、DSTが発生すると、クロックが60ではなく、たとえば90または120分シフトするように設定できます。

回答:


4

TZデータベースに関するウィキペディアのページを見ると、次のようになります

抜粋

ファイルフォーマット

tzデータベースは、ルールとゾーン遷移を人間が読める形式でリストしたテキストファイルのセットとして公開されます。使用するために、これらのテキストファイルは、タイムゾーンごとに1つずつ、プラットフォームに依存しないバイナリファイルのセットにコンパイルされます。参照ソースコードには、zic(ゾーン情報コンパイラ)と呼ばれるコンパイラと、それらのファイルを読み取ってlocaltime()やmktime()などの標準APIで使用するためのコードが含まれています。

追加の検索により、このQ&Aがstackoverflowで見つかりました。タイトルは「タイムゾーンデータベースファイル形式の質問」でファイル形式に関する追加情報が含まれていました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.