Tzdata-グローバルタイムゾーンナレッジベース

どこか(たとえば、一部のアプリケーション)では、世界時UTCだけでなく、地球のさまざまな部分の現地時間でも作業する必要がある場合、現地時間の相対的な計算方法に関する何らかの知識ベースが必要であるという疑問が生じます。世界のさまざまな地域のUTC。



Unixライクなシステムの多くは、 tzdataを使用してすべての世界のタイムゾーンに関する情報を格納します(tzデータベース、zoneinfoデータベース、この知識ベースの創設者であるArthur Olsonを称えるOlsonデータベース)。



アーサーデイビッドオルソン(アーサーデイビッドオルソン)が初めてこの基地の収集を開始し、後に他の参加者がこのプロジェクトに参加しました。 現在、tzdataデータベースの新しい情報の主なコミッターはPaul Eggertであり、Arthur Olsonは現在、ローカルの時間とタイムゾーンデータ(tzcodeパッケージ)を操作するためのユーティリティを開発およびサポートしています。



tzdataデータベースには、世界のすべての地域のすべてのタイムゾーンに関する詳細情報が含まれています。

-タイムゾーンを特徴付ける主要な集落の座標参照。

-世界時UTCに対するさまざまな地域の現地時間のシフト。

-サマータイム(DST)が適用される地域、標準との相対的なずれ、サマータイムへの切り替えおよび異なる地域での異なる期間の正確な日付と時刻が示されます。

-うるう秒に関する情報。



tzdataデータベースの重要な機能は、すべてのワールドタイムゾーンの現在の状態(つまり、世界の各地域のUTCに対する現地時間を計算するための現在のルール)を保存するだけでなく、すべての地域の現地時間を計算するためのこれらのルールに対するすべての変更も保存することですUnix時代(1970年1月1日)の始まり以来ずっと。 政治的決定により国が別のタイムゾーンに移動したと仮定します。この情報はtzdataで発生し、2番目に正確です。 いくつかの国では夏時間を変更しました-この情報はtzdataで発生した秒まで正確です。 一部の国では夏時間をキャンセルしました-この情報はtzdataで発生した秒まで正確です



この機能により、さまざまな時間間隔でさまざまな国の正確な時間計算を行うことができます。



たとえば、現地時間:

2010-12-01 14:00(MSK)-2010-12-01 11:00(UTC)に対応

2011-12-01 14:00(MSK)-2011-12-01 10:00(UTC)に対応

タイムゾーンの同じ名前と同じ現地時間(異なる年のみ)のように見えます。 しかし、ある履歴期間では、MSKタイムゾーンはUTC + 03:00に対応し、別の履歴期間では、同じMSKタイムゾーンはUTC + 04:00に対応していました。

また、tzdataベースのおかげで、これらのあいまいさはすべて簡単に解決できます。 各期間(1970年以降)の各タイムゾーンでいつ、どのように時刻が計算されたかについての詳細情報を格納します。



すべてのタイムゾーンの現在の状態のみ(履歴メモリなし)がある場合、ローカルタイムゾーンのこのようなあいまいさは解決されません。 また、tzdataデータベースは、世界中のタイムゾーンに関するこれらすべての情報を収集および統合する問題を解決するだけです。



tzdataデータベースの世界のさまざまな地域での時間の計算に関する情報は、世界中のオープンソースコミュニティの参加者によって共同で収集され、送信された情報はチェックされ、議論され、更新され、統合され、最終的にtzdataファイルにコミットされます。 tzdataソースには、すべてのタイムゾーンに関するすべての情報が、コメントと説明付きの人間が読み取れるテキスト形式で含まれています。 さらに、これらのテキストファイルは( zicユーティリティによって)コンパイルされ、コンパイルされたバイナリ形式でシステムで使用されます。 さらに、コンパイルされたtzdataファイルは、バイナリですが、実行可能コードを含まず、プラットフォームに依存しません。 ほとんどのUNIXライクなオペレーティングシステムでは、tzdataパッケージのタイムゾーンを説明するコンパイル済みファイルは次の場所にあります。/ /usr/share/zoneinfo/







tzdataデータベースのタイムゾーンの名前は、Area / Location(Region / City)の形式で示されます。たとえば、ヨーロッパ/モスクワ、ヨーロッパ/ミンスク、アジア/オムスク、アジア/マガダン、アメリカ/ニューヨークなどです。

ワールドタイムゾーンが関連付けられているワールドの場所の完全なリスト(座標参照付き)は、通常tzdataディレクトリにあるzone.tabファイルにあり/usr/share/zoneinfo/zone.tab



/usr/share/zoneinfo/zone.tab







tzdataプロジェクトの公式リソース:

HTTP: http : //cs.ucla.edu/~eggert/tz/

FTP :: ftp://elsie.nci.nih.gov/pub/

試用期間中、FTPサーバーは一時的に閉じられます)。



公式ICANNサーバー上のTzdataプロジェクトファイル:

HTTP: http : //www.iana.org/time-zones

FTP:ftp: //ftp.iana.org/tz/

Rsync: rsync://rsync.iana.org/tz/



tzdataプロジェクトの一時的なミラー:

HTTP:

http://www.twinsun.com/tz/tz-link.htm

http://tzmirror.appealingapps.de/

http://tzmirror.sunbase.org/

http://www.mailstation.de/tzmirror/

http://www.foo.be/mirrors/tzmirror/

http://www.localhost.lu/mirrors/tzmirror/

FTP:

ftp://tzmirror.appealingapps.de

ftp://munnari.oz.au/pub



tzdataで収集された情報は、ライセンスの制限(パブリックドメイン)なしですべての参加者に自由に配布されます。 誰でも(ソース形式とバイナリ形式の両方で)自由に取得して、アプリケーション/ライブラリ/サービスで使用できます。 そして、OSディストリビューション(特にLinux / BSD / MacOS)およびさまざまなソフトウェアの多くの開発者/ベンダーがまさにそれを行います。



オープンソースの世界では(だけでなく)、tzdataデータベースは事実上、すべての世界のタイムゾーンとその変更の履歴に関する標準的な情報源です。 tzdataデータベースは、すべてのGNU / Linuxディストリビューション、BSDシステム(FreeBSD、NetBSD、OpenBSD、DragonFly BSD)、Solaris、UnixWare、AIX(6.1以降)、Cygwin、Mac OS Xおよび他のUnixライクなディストリビューションで使用されます。 モバイルOS:Android、Apple iOS、Maemo / MeeGoもtzdataを使用します。 さらに、tzdataのデータは、MySQL、Oracle DB、PostgreSQLなどの多くのDBMS、およびさまざまな言語、フレームワーク、ライブラリ、モジュール:PHP5、Perl(モジュールDateTime :: TimeZoneおよびDateTime :: LeapSecond)、Pythonで使用されます(pytzモジュール)、GNU Cライブラリ(glibc)、. NET Framework(zoneinfoモジュール)、Javaランタイム環境など。



統一されたグローバルな知識ベースtzdataのおかげで、各OSおよびソフトウェア開発者は、プロジェクト内の世界のタイムゾーンに関する情報を個別に収集し、維持する必要がありません。 誰もが単一のソースから取得し、どこでも同じです(tzdataが時間通りに更新される場合)。



Tzdataのバージョンには、次のように番号が付けられています。 最初に、このバージョンのリリース年を示す4桁の数字、次にa、b、c、d ...などのラテンアルファベットの1文字 1年後に新しいtzdataがリリースされます。 たとえば、2010年にはtzdataのバージョンがリリースされました:2010a、2010b、2010c ...さらにバージョン2010oまで。 2011年にtzdataのバージョンがリリースされました:2011a、2011b、2011c ...さらに2011lまで(この記事の執筆時点では、これがtzdataの最新バージョンです)。



リポジトリから定期的に更新するLinuxディストリビューションを使用している場合、ほとんどの場合、tzdataパッケージの最新バージョンがすでにシステムにインストールされています。

Ubuntuを例として使用した最近のtzdataリリースのリリース日:

2011年9月12日-tzdataソースはバージョン2011jに更新されました。

2011年9月14日-tzdataパッケージがアップストリームUbuntu(Debian Unstable)でバージョン2011jに更新されました。

2011年9月20日-tzdata 2011jパッケージがメインのUbuntuリポジトリに配信されました。

2011年9月26日-tzdataソースはバージョン2011kに更新されました。

2011年9月26日-tzdataパッケージがアップストリームUbuntu(Debian Unstable)でバージョン2011kに更新されました。

2011年10月4日-tzdata 2011kパッケージがメインのUbuntuリポジトリに到着しました。

2011年10月10日-tzdataソースがバージョン2011lに更新されました(執筆時点では、Ubuntu用のパッケージはまだありませんでした)。



パッケージマネージャーを使用したLinuxディストリビューションでは、現在インストールされているtzdataパッケージのバージョンを簡単に確認できます。 たとえば、Debian / Ubuntuでは、次のコマンドでこれを実行できます。

dpkg -s tzdata |grep Version







プロジェクトで異なる地域のタイムゾーンと現地時間に関する情報を使用する必要がある場合は、自転車を再発明しないで、これらの目的でtzdataベースを使用することをお勧めします。 これにより、第1に時間を節約し、第2に、現在と過去の現地時間で正確な計算を行うために、常にワールドタイムゾーンの変更履歴の最新のベースを取得できます。



tzdataプロジェクトの法的問題



2011年9月30日 -Astrolabe、Inc.のACS Atlas / ACS International Atlas / ACS American Atlasソフトウェア製品から取得した情報のtzdataでの違法な使用について、ボストンの米国連邦裁判所に民事訴訟が提起されました。 商用ライセンスに基づいて配布され、知的財産権を有します。

この場合の原告:Astrolabe、Inc.

被告:アーサー・デイビッド・オルソンおよびポール・エッガート(tzdataの維持管理者およびプロジェクト調整者)。

(それに関するHabréのトピック



2011年10月6日 -tzdataプロジェクトのメーリングリスト(Newsgroups:gmane.comp.time.tz)のArthur David Olsonは、この検察に関連して、裁判所が決定する前にすべてのプロジェクトファイルで公式FTPサーバーを停止しなければならないと述べました。 tzdata。

この直後、tzdataプロジェクトの他の参加者がいくつかの一時的なHTTP / FTPミラーを開いて、誰でもこれらのファイルにアクセスできるようにしました(上記のtzdataプロジェクトの一時的なミラーを参照)



2011年10月14日 -国際機関であるICANNは 、TZデータベースプロジェクト(tzdata)をサポートする申し出を受けたことを通知するプレスリリース( PDF )を発行し、当面はtzdataプロジェクトのサポートを引き受けると発表しました。

タイムゾーンの単一のグローバルな標準化されたベースの将来の開発とサポートは既にIETFによって開発されているドキュメントによって支配されるでしょう。 このドキュメントのドラフトは次の場所にあります。

tools.ietf.org/html/draft-lear-iana-timezone-database-04



この場合のトライアルはまだ完了していません(この記事の執筆時点では)。





CC BY Licenseロゴ
記事の著者:Roman Tick <ya.roman.tik {t} yandex.ru>

記事のテキストは、 Creative Commons Attribution 3.0 Unported (CC BY 3.0)でライセンスされています。 このテキストを自由にコピー、編集、使用することができます。その目的は、著者の義務を示すものです。



All Articles