zone、タイムゾーン)情報をボランティアの共同作業により収録したデータである。コンピュータ・プログラムやオペレーティングシステムでの利用を意図している[3]。databaseとも呼ばれる[4]。databaseの編集者兼管理者である[5]。Authority(IANA)が管理に加わっている。目に付く特徴は、ポール・エッガートにより設計されたタイムゾーンの統一的命名規則である。1]や"Europe/Paris"というような表記法である[6]。UTC)からの、民間における全ての変更を記録するよう企図されている[7]。夏時間のような標準時の変化を示す遷移(transition)情報も含まれ、閏秒でさえも記録されている[8]。clocks)が全く同一の地域となるよう分割して登録されている。databaseバージョン2009rから取得したデータであるが、南極を除くすべての地域の標準時帯が掲載されている[9]。外部リンク歴史[編集]プロジェクトの起源は少なくとも1986年にまで遡る[10]。Atlas[13]である[14]。幾つかの参照用ソースコードも含め、プロジェクトのデータベースはパブリックドメインに置かれている[15]。概ね年に数回、変更が必要となる場合にデータベースの新版が公開される[16]。al.[17][18][19][20][21])。databaseの維持管理並びに頒布の停止がオルソンより発表された[22]。同時にメーリングリストの閉鎖も発表され、最新のアーカイブが配置されていたNIH内のFTPサイトの運営は停止した。case")にある為と述べている[22]。databaseがアストロレーブが持つ著作権を侵害した」と主張している[14]。databaseメンテナが著作物として利用したか否かという点が主な争点となる。「tzメーリングリスト・アーカイブ」(タイムゾーン・メーリングリスト・アーカイブ。reproduction")されたと原告は主張している。当該データベース自体は実際には申立の対象としてはなっていない[20]。databaseの全世界のタイムゾーンを記録したテーブルは対象となっていない[14][20][24]。databaseは、構成ファイルのコメント・テキストを見れば分かる通り、タイムゾーン・データの利用の程度を検証できるよう、当該アトラスを含む情報源を明らかに参照している[25]。databaseの構築に都合の良い(好ましい)情報源の一つである。data")が多く含まれている。expression")に対しては発生し得るものであり[26]、当該データベースは当該アトラスの断片を引用したのではなく、主としてタイムゾーン・データを独自の形式(フォーマット)で「複製した」("reproduce")のであり、一目見て訴訟申立の根拠は薄弱であると批判されている[27]。加えて、タイムゾーン・データベース全体としても「著作性」("copyrightable")はない。ある、と米国著作権法のあり方から見て通常結論付けられる[14]。2012年2月22日にアストロレーブはタイムゾーンデータが歴史的事実であることを認め、訴訟を取り下げた[28]。ICANNへの管理移行[編集]2011年10月14日、本データベースの管理はICANNへと引き継がれた[29][30]。IANAはウェブページにて、著作権侵害の申立を受けているデータも含む完全なデータベースのコピーをオンライン上で公開しており、データベースの管理に関する現行ならびに今後の計画も同時に発表している[31][32]。databaseはテキストファイルとして公開される。そのファイルは、人が可読な形式であり、ルールとタイムゾーンの遷移情報が一覧化されている。利用に当たっては、プラットフォーム独立なバイナリファイルにコンパイルされる。バイナリファイルはタイムゾーン毎に1つずつ生成される。mktime()といった標準的なAPIを利用してコンパイル済みデータを読み込んだり、利用することができるコードも付属している。これらタイムゾーンの標準的なAPIは標準Cライブラリをはじめとして多くのライブラリに採用されている。databaseの標準時データをテキスト生データからタイムゾーンコンパイラでコンパイルしてからデータをロードする。前述のzicは現在では参照用ソースコードには同梱されておらず[34]、各ライブラリ毎に収録されている[35]。databaseのzicそのもの、またはそれと同様のタイムゾーン・コンパイラを収録している[36]。GNU/LinuxシステムやBSD系システムでは、オペレーティングシステム・インストール時もしくは、適宜ユーザの指示によりシステム時刻の標準時を指定できる[37]。概ねUTCまたはシステムが設置されている地域の標準時などその他任意の標準時を指定できる。設定の後システムは前述の通りタイムゾーン・テキストをコンパイルする。databaseを含むパッケージのアップグレード時に自動的に生テキストデータを再コンパイルする。組み込みLinuxなどのメモリの少ない環境では、コンパイル処理に時間がかかるため、コンパイル済みのパッケージを利用する場合もある。squeeze)などではこの方法を採用している。zone")とは、1970年以来ずっと地域内の全ての時計が合っているような、国における地域のことである。この定義は、一貫した地方時を持つ地理的地域とまず最初に関係がある。これはグリニッジ子午線からの一貫した差分と関係がある他の定義とは異なる。databaseにより定義された各タイムゾーンは、場合によってはUTCからの時間の差分(協定世界時との差)を複数持つ。典型的には、標準時と夏時間双方が同一のタイムゾーンに含まれる。タイムゾーンの命名規則[編集]タイムゾーンは人間が理解しやすいようにするため、例えば"America/New_York"といったような"地域/地名"形式の固有の名称を持っている。その選択は英語名もしくはそれと等価な名前を利用するようになっており、名称の句読点や共通の接尾辞は省かれる。アンダースコアはスペースの代わりに利用される。地名部分におけるハイフンはそのまま用いられる。"Etc"という特殊な名前のいずれかを指す。大陸名と大洋名一式には現在、次が含まれる。アフリカ(Africa)、アメリカ(America)、南極(Antarctica)、北極(Arctic)、アジア(Asia)、大西洋(Atlantic)、オーストラリア(Australia)、ヨーロッパ(Europe)、インド(Indian)、太平洋(Pacific)。"Etc"という特殊な地域は、幾つかの管理されるタイムゾーン、とりわけUTCを表す"Etc/UTC"のために使用される。POSIX形式、SUS[39]に従うため、"Etc/GMT"を始めとするこれらのタイムゾーン名は、多くの人の予想とは正反対となる符号を持つ(比較のため、UTCのオフセットも参照せよ)。この形式では、タイムゾーン名の符号に関して、GMTから見て西側のタイムゾーンは、正の符号、東側は負の符号を持つ[40][41]。databaseのタイムゾーン名"Etc/GMT-14"はGMTから14時間進んでいる、換言すれば、UTCから14時間分東のタイムゾーンに位置する(子午線から東回りに経度210度分進めたタイムゾーンに位置する)。UTC+14と同じタイムゾーンを指している。地名[編集]「地名」("Location")とは、該当地方内の特定の地名を指し、大抵都市や小規模な島嶼に当たる。このスキームにおいては国名は使用されない。主な理由として、政治的な変更や国境変更は頻繁にあるため国名を利用するスキームではデータの更新作業が煩雑になることが挙げられる。大都市の名前はより永続的な傾向がある。alpha-2)国名コードのそれぞれにおいて、少なくとも1つのタイムゾーンを含むようにしており、そして、データベースへのユーザインタフェースの多くはこのことを利用している。加えて、将来タイムゾーンが変更された際に地域が異なるタイムゾーンに分断されないように地名の選択は地理的にコンパクトになるよう望まれている。[要出典]通常、地名には、全体のタイムゾーンを代表するある地方の人口の最も大きい都市が選択される。幅広く知られている名前やより曖昧ではない名前を持つその他の都市が存在する場合、そちらが選択される可能性がある。エイリアス)[要出典]を作成するという慣習がある。時には「地名」がそれ自身、複合的な名称で表現される場合がある。"America/Indiana/Indianapolis(英語版)"というタイムゾーンがそのような例である。このような3段階形式の名称は現在、"America/Argentina/..."、"America/Kentucky/..."、"America/Indiana/..."、そして"America/North_Dakota/..."以下のゾーンにのみ存在する。選択された地名は完全なその地域の代表となる。そのため、すべての都市名がその名にちなんで命名されるタイムゾーンを持つとは限らない。"America/Boston"というタイムゾーンは存在しない。現時点で所属するタイムゾーンが同一であるが互いに異なる都市は、歴史的な意味で別名が付けられている場合(例えば、同じ標準時である"America/Detroit"と"America/New_York"の違い)や、または同じタイムゾーンに属するが異なる別々の都市が歴史的な意味で異なる国に分断された場合(例えば、旧チェコスロバキアの分裂による"Europe/Prague"と"Europe/Bratislava"の違い)により、たとえ現時点ではタイムゾーンが一致しているにも関わらず、将来異なるタイムゾーン名を持つ可能性もある。2010年5月1日、アーサー・デイヴィッド・オルソンは地名の文字数の限度を14に定めることを述べている[42]。Banderas)のような地名から"de"を削り、識別子を"Bahia_Banderas"(データベース上ではAmerica/Bahia_Banderas(英語版))のみに限定することを正当化するためである。国名(コスタリカ)が使用されている。サンノゼ)で使われており不適当であるため。スペースはアンダースコアに置換されている。島名(サハリン)が使用されている。databaseの制限である14文字以内の地名表記を超えてしまうため。Banderas")から"de"が欠落している。これは正しい英字名称では14文字を超えてしまうため。文字"'"(アポストロフィー)は除去されている。アンダースコアと置換せずスペースを除去するのは規則通りではないが、アンダースコアを付けると全部で15文字になってしまうため例外的にこのような名称になっている。databaseにはかつて誤ったタイムゾーンが含まれていたケースがあった。Islands時間"等[43]を参照されたい。Atlasの第3版に誤った記述が含まれていたため起こった。databaseは時刻の遷移を正確に記録している。このフォーマットは、遷移の日時の変化も適宜調節できる。Zone.tab[編集]zone.tab(英語版)はパブリックドメインに置かれているファイルである。このファイルにはタイムゾーンが一覧で記述されている。列、行が表す区分はファイル内のコメントに次のように記述されている。2-文字による国名コード。詳しくはファイル`iso3166.tab'を見よ。符号(+または-)-度(D)-分(M)-秒(S)フォーマットで表記。フォーマットは+-DDMM+-DDDMMまたは+-DDMMSS+-DDDMMSSのいずれかを選択。始めに北回りを正の符号にとる緯度、続いて東回りを正の符号にとる経度を記載。環境変数TZの値に含まれるタイムゾーン名を記述。該当する国の記述が複数の行に渡る場合に限り記載。各列要素は単一のタブで区切られる。表の各行のデータは国名によってまず区分けられ、続いて、次の順序に従い各国のデータを並べ替える。最大の人口を持つゾーンを先頭に配置する。(1)と矛盾しないようにすること。1970年以前のデータ[編集]1970年より以前のデータに関しては、地域のタイムゾーンを同定する都市名を修正するよう注意を払っている。地域全体でそのような修正が必要とは限らない。1970年時点からの標準時を区別する場合にのみ、新しい地域が作成されるからである。1963年10月23日から1963年12月9日までブラジル、ミナスジェライス州、エスピリトサント州、リオデジャネイロ州、サンパウロ州は夏時間制度を採用していた。1970年からの標準時はこの地域全体では同一であったため、タイムゾーンAmerica/Sao_Paulo(英語版)を分割する要求は却下された[44]。ドイツ時間の例では、トライゾーン内でベルリンと異なる夏時間を採用していた1945年に関しては、タイムゾーンEurope/Berlin(英語版)は正しい時刻を示していないとされる。[要出典]区域[編集]1970年以後での複数国に及ぶタイムゾーン[編集]1970年以後において、2つの国に及ぶ地域を含むタイムゾーンが2つ存在する。3166を1974年に初めて公開している)。YDYE)に分かれていた。DDDE)に分かれていた。databaseのコードとデータベース本体は、ボランティア集団により管理されている。アーサー・デイヴィッド・オルソンはコードへ、ポール・エッガートはデータベースに、それぞれ最も多くの変更を加えた人物である。提案された変更点は、tzメーリングリストに送付される。このメーリングリストは、Usenetニュースグループのcomp.time.tzにゲートウェイを提供している。ソースコードはFTPサーバのelsie.nci.nih.govを経由して頒布される。一般に、これらのファイルはDebianのようなソフトウェア・ディストリビューターに採用され、事前コンパイルを行い、ソースコードとバイナリパッケージがディストリビューションの一部として収録される。ソースコードを入手して、バイナリファイルを自分でビルドするかどちらかの手段をとることができる。現在の管理から将来、類似の方針を基にIANAによる管理へと移行する計画がIETFにより策定中である[45]。これはHTTPベースの通信プロトコルを利用する仕組みを持つとされる[46]。lawsuit")[20]、オリジナルの頒布用FTPサーバとメーリングリストは閉鎖された[22]。2011年10月7日、ICANNの有志(ケヴィン・ロバート・エルズ(英語版)ら)によりメーリングリストのアーカイブが複製され、一時的に仮メーリングリスト[47]が開設された[48]。このメーリングリストは引き続きタイムゾーンのメンテナンスの為に利用される。2011年10月14日、IETFから要請を受け、正式にICANNが管理を引き継ぐと発表[49]した[29][30]。節"ソフトウェア・システムにおける利用"を参照)、管理が滞ることで起こりえる影響は計り知れない」と述べている。databaseはタイムゾーン・コンパイラ等のツール("tzcode")と生テキストのデータベース本体("tzdata")双方がICANN、IANA管理下のFTPサーバで頒布されている[50]。Unix系システム[編集]Linuxディストリビューションをはじめとする多くのUnix系システムにおいて、タイムゾーンデータが格納されている標準的なディレクトリパスは/usr/share/zoneinfo/である。ファイルの形式識別用コマンドであるfile(英語版)は、次の実行例のように、バイナリ形式のタイムゾーンファイル内部からデータを読み出し、人間が理解しやすいテキスト形式で表示する機能をサポートしている。databaseの一部ではない。Muller)が、tzdataに収録されている「タイムゾーンに関する『境界線』」をベクター図形のイメージに表現したものを一般に公開している(上図)[9]。このベクター図形を利用すると、地球上の経緯度上の各地点に位置づけられる、tzdata上のタイムゾーンを決定できる。その他の標準の利用[編集]CLDRはUN/LOCODEを地域同定に利用している[51]。databaseの開発元が避けたいと思っている事項も含まれている。databaseは多くのコンピュータシステム上でタイムゾーン処理とタイムゾーン変換のために利用されている。以下のような例が挙げられる。macOSも含まれる。API実装」として参照している。Cライブラリとそれを利用するシステム。4の派生システム、例えばSolarisとUnixWare。5.2時点ではzoneinfoは含まれていた[55]。これはMySQLのようなサードパーティーアプリケーションのサポートのためである[56]。実際にはそれは利用不可能だった[55][57])。その他幾つかのUNIXシステム、例を挙げると、Tru64とUNICOS/mpである(IRIXも未だ維持されてはいるが、もはや出荷されていない)。UNIXではないものとしては、OpenVMSが利用している。Environment。2002年の1.4リリースより利用している。Perlモジュールである、DateTime::TimeZone[58]、DateTime::LeapSecond[59]が2003年より利用している。PHPは2005年の5.1.0リリースより採用している。Pythonモジュールである、pytz[60]。Frameworkモジュールのzoneinfo[61]。Delphi用モジュールのdelphi-tzdb[62]。2004年の10gリリースから採用している[63]。PostgreSQL。2005年のリリース8.0から採用している。clocks、その他組み込みソフトウェア。IDというものがユニコードコンソーシアムのCLDR並びにICU(英語版)で利用されている。IDsから標準的Olson名へのマッピングを行う[64]。databaseのタイムゾーンを指定しdateコマンドの出力結果が変化する様子を示す。環境変数LANG=ja_JP.UTF-8など)に指定されているものとする。OSのインストール時に指定したタイムゾーンは日本標準時であるものとする。Cライブラリでは/etc/localtimeファイルに保存され、コンパイル済みタイムゾーンデータは/usr/share/zoneinfoディレクトリ以下に保存されることが多いとされる。dateコマンドは引数に何も指定しないで実行した場合、デフォルトではシステム時刻と/etc/localtimeのシステム・タイムゾーン設定を検知し両者を表示する。JST日本標準時を明示的に指定する場合は以下となる。JSTフランスは中央ヨーロッパ時間(CET)を採用している。TZに指定した場合の結果は以下となる。CESTPOSIX形式では、グリニッジ子午線の西回りを正の符号で表記する。GMT+9TZに無効な文字列を指定した場合、すべて協定世界時(UTC)であると見なされる。fooよくある間違いはTZにJSTと指定してしまうことである。これだとTZにUTCを指定した場合と同じになってしまう。POSIXのTZ環境変数の表記に合わせるならば、JST-9と指定しなければならない(符号の正負に注意せよ)。databaseが利用できる環境ならば、このようなPOSIX表記を利用せずとも、最初に挙げたAsia/Tokyoのような〈大州〉/〈地域〉表記を利用した方が誤りを軽減できると述べている[3]。のちほど述べるとおり、アンダースコアはスペースの代わりに使用される。