tz database
作者 | アーサー・デイヴィッド・オルソン(Arthur David Olson、"ado"[1])、ポール・エッガート(Paul Eggert) |
---|---|
開発元 | IANA |
最新版 | 2020e / 2020年12月23日[2] |
リポジトリ | |
サポート状況 | 開発中 |
種別 | データベース |
ライセンス | パブリックドメイン[3] |
公式サイト | Sources for Time Zone and Daylight Saving Time Data(かつてのホームページ) |
Time Zone Database(元々[4]はtz database[5]と呼ばれていた)とは、IANAが管理している、世界各地域の標準時や常用時の等時帯(time zone、タイムゾーン)情報を収録したデータベースである。主にコンピュータ・プログラムやオペレーティングシステムでの利用を意図している[6]。tz、tzdb[7]、tzdata、zoneinfo databaseなどとも呼ばれる。
元々は、アーサー・デイヴィッド・オルソン(Arthur David Olson)が開始したプロジェクトであり、1980年代より複数のボランティアにより更新され続けていた[8]。その事にちなみOlson databaseとも呼ばれる[9]。2011年10月14日よりICANNのIANAが管理することとなった[8]。ポール・エッガート(Paul Eggert)と Tim Parenti が現在のTime Zone Databaseの編集者兼管理者である[10]。
最も目に付く特徴は、ポール・エッガートにより設計されたタイムゾーンの統一的命名規則である。例えば、"America/New_York
"[注釈 1]や"Europe/Paris
"というような表記法である[11]。データベースは、歴史的な(経年変化を記録した)タイムゾーンならびに1970年のUNIXエポックタイム(1970年1月1日0時0分0秒 UTC)からの、全ての常用時の変更を記録するよう企図されている[12]。また、夏時間のような標準時の変化を示す遷移(transition)情報も含まれ、閏秒でさえも記録されている[13]。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Tz_map_world2009r_efeledotnet.png/400px-Tz_map_world2009r_efeledotnet.png)
歴史
[編集]プロジェクトの起源
[編集]プロジェクトの起源は少なくとも1986年にまで遡る[15]。データベース構築のためタイムゾーンや夏時間の履歴を調査するのに現在も使用している重要な情報源は、トーマス・G・シャンクス(Thomas G. Shanks)[16]により"ACS publications"から1978年以降数版刊行されているアトラス、The American Atlas[17]並びにシャンクスとリック・ポッテンジャー(Rique Pottenger)によるThe International Atlas[18]である[19]。幾つかの参照用ソースコードも含め、プロジェクトのデータベースはパブリックドメインに置かれている[20]。概ね年に数回、変更が必要となる場合にデータベースの新版が公開される[21]。
訴訟(2011年)
[編集]2011年9月30日、本データベースの著作権侵害を巡ってアストロレーブがオルソンおよびエッガードの2名を提訴した(「アストロレーブ・インコーポレイティッド対オルソン他事件」 Astrolabe, Inc. v. Olson et al.[22][23][24][25][26])。その結果、2011年10月6日(UTC)、tz databaseの維持管理並びに頒布の停止がオルソンより発表された[27]。同時にメーリングリストの閉鎖も発表され、最新のアーカイブが配置されていたNIH内のFTPサイトの運営は停止した。オルソンのメールによると、「今回の閉鎖はtz databaseに関連する民事訴訟が同年9月30日に提起され」訴訟係属("pending legal case")にある為と述べている[27]。一方アメリカ合衆国マサチューセッツ地区連邦地方裁判所に提出された申立訴状("complaint text")[25]によると、原告は"ACS Atlas"のデータを自社ソフトウェアに利用する企業、アストロレーブ("Astrolabe"[注釈 2])[28]であり、「tz databaseがアストロレーブが持つ著作権を侵害した」と主張している[19]。
訴状によると、本件は先に述べた通りtz databaseが参考として使用している2つのアトラス、The American AtlasとThe International Atlasをtz databaseメンテナが著作物として利用したか否かという点が主な争点となる。とりわけ「tzメーリングリスト・アーカイブ」(タイムゾーン・メーリングリスト・アーカイブ。管理についての詳細は、節「管理」を参照)並びに当該データベースと共に維持管理されているいくつかの「補助的な連結収集物」("auxiliary link collections")に、アトラスの「データ」が「無断転載」("unauthorized reproduction")されたと原告は主張している。しかし、当該データベース自体は実際には申立の対象としてはなっていない[25]。この申立ではタイムゾーン・データの経年変化を記録する「編集物」("compilation")のみが関係しており、現行のtz databaseの全世界のタイムゾーンを記録したテーブルは対象となっていない[19][25][29]。
tz databaseは、構成ファイルのコメント・テキストを見れば分かる通り、タイムゾーン・データの利用の程度を検証できるよう、当該アトラスを含む情報源を明らかに参照している[30]。このアトラスはtz databaseの構築に都合の良い(好ましい)情報源の一つである。そして当該データベースにアトラスから複製された「事実に基づくデータ」("factual data")が多く含まれている。著作権は通常「事実」("fact")に付随するものではないが、「創作的表現」("creative expression")に対しては発生し得るものであり[31]、当該データベースは当該アトラスの断片を引用したのではなく、主としてタイムゾーン・データを独自の形式(フォーマット)で「複製した」("reproduce")のであり、一目見て訴訟申立の根拠は薄弱であると批判されている[32]。加えて、タイムゾーン・データベース全体としても「著作性」("copyrightable")はない。その理由は、たとえタイムゾーン・データをアトラスに纏め上げるのに著しい作業量を伴うとしても、アトラスに掲載された情報は完全な事実の収集であり、それ故創作性は無い (これを「額の汗の法理」と呼ぶ) からである、と米国著作権法のあり方から見て通常結論付けられる[19]。
2012年2月22日にアストロレーブはタイムゾーンデータが歴史的事実であることを認め、訴訟を取り下げた[33]。
IANAの管理前
[編集]tz databaseのコードとデータベース本体は、ボランティア集団により管理されていた。アーサー・デイヴィッド・オルソンはコードへ、ポール・エッガートはデータベースに、それぞれ最も多くの変更を加えた人物である。提案された変更点は、tzメーリングリストに送付される。このメーリングリストは、Usenetニュースグループのcomp.time.tzにゲートウェイを提供している。ソースコードはFTPサーバのelsie.nci.nih.gov
を経由して頒布される。一般に、これらのファイルはDebianのようなソフトウェア・ディストリビューターに採用され、事前コンパイルを行い、ソースコードとバイナリパッケージがディストリビューションの一部として収録される。エンドユーザーは、いくらか遅延を伴うものの、これらソフトウェア・ディストリビューションのアップデート手続きを頼りにするか、直接 ftp://elsie.nci.nih.gov/pub/ からソースコードを入手して、バイナリファイルを自分でビルドするかどちらかの手段をとることができる。
その当時の管理から、類似の方針を基にIANAによる管理へと移行する計画がIETFにより策定された[34]。これはHTTPベースの通信プロトコルを利用する仕組みを持つとされる[35]。
訴訟提起に基づき("Pursuant to a lawsuit")[25]、オリジナルの頒布用FTPサーバとメーリングリストは閉鎖された[27]。2011年10月7日、ICANNの有志(ケヴィン・ロバート・エルズら)によりメーリングリストのアーカイブが複製され、一時的に仮メーリングリスト[36]が開設された[37]。このメーリングリストは引き続きタイムゾーンのメンテナンスの為に利用される。2011年10月14日、IETFから要請を受け、正式にICANNが管理を引き継ぐと発表[38]した[39][40]。IETF議長ラス・ハウズリー(Russ Housely)は、商用システムを含む様々なソフトウェアでtz databaseが使用されている以上(注: 節"ソフトウェア・システムにおける利用"を参照)、管理が滞ることで起こりえる影響は計り知れない」と述べている。
IANAへの管理移行
[編集]2011年10月14日、本データベースの管理はICANNのIANAへと引き継がれた[39][40]。IANAはウェブページにて、著作権侵害の申立を受けているデータも含む完全なデータベースのコピーをオンライン上で公開しており、データベースの管理に関する現行ならびに今後の計画も同時に発表した[41][42]。BCP 175 (RFC 6557) により Time Zone Database の管理の方法が規定されている。タイムゾーン・コンパイラ等のツール("tzcode")と生テキストのデータベース本体("tzdata")双方がIANA管理下のFTPサーバで頒布されている[43]。
データ構造
[編集]ファイルフォーマット
[編集]![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Debconf_software_package.png/200px-Debconf_software_package.png)
Time Zone Database はテキストファイルとして公開される。そのファイルは、人が可読な形式であり、ルールとタイムゾーンの遷移情報が一覧化されている。
利用に当たっては、プラットフォーム独立なバイナリファイルにコンパイルされる。バイナリファイルはタイムゾーン毎に1つずつ生成される。参照用ソースコードにはzic(zone information compiler)[44][45]と呼ばれるコンパイラが付属しており、同時に、関数localtime()
や mktime()
といった標準的なAPIを利用してコンパイル済みデータを読み込んだり、利用することができるコードも付属している。これらタイムゾーンの標準的なAPIは標準Cライブラリをはじめとして多くのライブラリに採用されている。とりわけ標準CライブラリはTime Zone Databaseの標準時データをテキスト生データからタイムゾーンコンパイラでコンパイルしてからデータをロードする。GNU Cライブラリ(glibc)とその派生物ではTime Zone Databaseのzicを改変したものを収録している[46]。
Unix系システムでは、オペレーティングシステム・インストール時もしくは、適宜ユーザの指示によりシステム時刻の標準時を指定できる[47]。概ねUTCまたはシステムが設置されている地域の標準時などその他任意の標準時を指定できる。設定の後システムは前述の通りタイムゾーン・テキストをコンパイルする。よってこの場合Time Zone Databaseのアップグレードを行う度にコンパイルし直す必要があるが、概ね現代的なパッケージ管理システムは標準CライブラリもしくはTime Zone Databaseを含むパッケージのアップグレード時に自動的に生テキストデータを再コンパイルする。組み込みLinuxなどのメモリの少ない環境では、コンパイル処理に時間がかかるため、コンパイル済みのパッケージを利用する場合もある。Debian 6.0(コードネーム; squeeze)などではこの方法を採用している。
タイムゾーンの定義
[編集]Time Zone Database において「タイムゾーン」("time zone")とは、1970年以来ずっと地域内の全ての時計が合っているような、国における地域のことである[48]。この定義は、一貫した地方時を持つ地理的地域とまず最初に関係がある。これはグリニッジ子午線からの一貫した差分と関係がある他の定義とは異なる。それゆえ、Time Zone Databaseにより定義された各タイムゾーンは、場合によってはUTCからの時間の差分(協定世界時との差)を複数持つ。典型的には、標準時と夏時間双方が同一のタイムゾーンに含まれる。
タイムゾーンの命名規則
[編集]タイムゾーンは人間が理解しやすいようにするため、例えば"America/New_York"といったような"地域/地名"形式の固有の名称を持っている。また、その選択は英語名もしくはそれと等価な名前を利用するようになっており、名称の句読点や共通の接尾辞は省かれる。アンダースコアはスペースの代わりに利用される。地名部分におけるハイフンはそのまま用いられる。
地域
[編集]「地域」("Area")とは、大陸名、大洋名、もしくは"Etc"という特殊な名前のいずれかを指す。大陸名と大洋名一式には現在、次が含まれる。アフリカ(Africa)、アメリカ(America)、南極(Antarctica)、北極(Arctic)、アジア(Asia)、大西洋(Atlantic)、オーストラリア(Australia)、ヨーロッパ(Europe)、インド(Indian)、太平洋(Pacific)。
"Etc"という特殊な地域は、幾つかの管理されるタイムゾーン、とりわけUTCを表す"Etc/UTC"のために使用される。POSIX形式、SUS[49]に従うため、"Etc/GMT"を始めとするこれらのタイムゾーン名は、多くの人の予想とは正反対となる符号を持つ(比較のため、UTCのオフセットも参照せよ)。この形式では、タイムゾーン名の符号に関して、GMTから見て西側のタイムゾーンは、正の符号、東側は負の符号を持つ[50][51]。例えば、Time Zone Databaseのタイムゾーン名"Etc/GMT-14"はGMTから14時間進んでいる、換言すれば、UTCから14時間分東のタイムゾーンに位置する(子午線から東回りに経度210度分進めたタイムゾーンに位置する)。すなわち、UTC+14と同じタイムゾーンを指している。
地名
[編集]「地名」("Location")とは、該当地方内の特定の地名を指し、大抵都市や小規模な島嶼に当たる。このスキームにおいては国名は使用されない。主な理由として、政治的な変更や国境変更は頻繁にあるため国名を利用するスキームではデータの更新作業が煩雑になることが挙げられる。大都市の名前はより永続的な傾向がある。しかしながら、データベースの管理者は、ISO 3166-1 alpha-2(en:ISO 3166-1 alpha-2)国名コードのそれぞれにおいて、少なくとも1つのタイムゾーンを含むようにしており、そして、データベースへのユーザインタフェースの多くはこのことを利用している。加えて、将来タイムゾーンが変更された際に地域が異なるタイムゾーンに分断されないように地名の選択は地理的にコンパクトになるよう望まれている。[要出典]
通常、地名には、全体のタイムゾーンを代表するある地方の人口の最も大きい都市が選択される。しかしながら、幅広く知られている名前やより曖昧ではない名前を持つその他の都市が存在する場合、そちらが選択される可能性がある。[要出典]都市名が変更されたという場合においては、旧名と新規の名称双方が同じデータベース・エントリを指し示すようにするため、将来のバージョンにおいて「別名」("alias", エイリアス)[要出典]を作成するという慣習がある。
時には「地名」がそれ自身、複合的な名称で表現される場合がある。"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に定めることを述べている[52]。その理由は例えばバイア・デ・バンデラス(Bahía de Banderas)のような地名から"de"を削り、識別子を"Bahia_Banderas"(データベース上ではAmerica/Bahia_Banderas)のみに限定することを正当化するためである。
表記例
[編集]America/Costa_Rica | 国名(コスタリカ)が使用されている。同国最大都市はサンホセであるが、英字名"San José"は様々な都市名(例: サンノゼ)で使われており不適当であるため。 |
America/New_York | スペースはアンダースコアに置換されている。 |
Asia/Sakhalin | 島名(サハリン)が使用されている。同島最大都市ユジノサハリンスクは英字名で"Yuzhno-Sakhalinsk"となり、Time Zone Databaseの制限である14文字以内の地名表記を超えてしまうため。 |
America/Bahia_Banderas | 最大都市名であるが、正式名称「バイア・デ・バンデラス」("Bahía de Banderas")から"de"が欠落している。これは正しい英字名称では14文字を超えてしまうため。 |
Antarctica/DumontDUrville | 文字"'"(アポストロフィー)は除去されている。アンダースコアと置換せずスペースを除去するのは規則通りではないが、アンダースコアを付けると全部で15文字になってしまうため例外的にこのような名称になっている。 |
各タイムゾーンのデータ格納
[編集]大抵は標準時と夏時間の遷移のことを指すが、UTCからの複数の時間差分を持つ各タイムゾーン向けに、Time Zone Database は時刻の遷移を正確に記録している。このフォーマットは、遷移の日時の変化も適宜調節できる。
zone1970.tab
[編集]zone1970.tab[53] はライセンスがパブリックドメインの Time Zone Database のファイルの1つである。かつては zone.tab[54] が使われていたが、現在は zone1970.tab の方を使うことが推奨されており過去との互換性のために zone.tab が残されている。zone1970.tab にはタイムゾーンが一覧で記述されている。2014年7月19日[55]までの zone.tab には、列、行が表す区分はファイル内のコメントに次のように記述されていた。
# This file contains a table with the following columns: # 1. ISO 3166 2-character country code. See the file `iso3166.tab'. # 2. Latitude and longitude of the zone's principal location # in ISO 6709 sign-degrees-minutes-seconds format, # either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS, # first latitude (+ is north), then longitude (+ is east). # 3. Zone name used in value of TZ environment variable. # 4. Comments; present if and only if the country has multiple rows. # # Columns are separated by a single tab. # The table is sorted first by country, then an order within the country that # (1) makes some geographical sense, and # (2) puts the most populous zones first, where that does not contradict (1).
参考訳:
# 当ファイルは次の各列要素から成る表(テーブル)で構成される: # 1. ISO 3166 2-文字による国名コード。詳しくはファイル`iso3166.tab'を見よ。 # 2. タイムゾーンの主要都市の緯度、経度をISO 6709の # 符号(+または-)-度(D)-分(M)-秒(S)フォーマットで表記。 # フォーマットは+-DDMM+-DDDMMまたは+-DDMMSS+-DDDMMSSのいずれかを選択。 # 始めに北回りを正の符号にとる緯度、続いて東回りを正の符号にとる経度を記載。 # 3. 環境変数TZの値に含まれるタイムゾーン名を記述。 # 4. コメント; 該当する国の記述が複数の行に渡る場合に限り記載。 # # 各列要素は単一のタブで区切られる。 # 表の各行のデータは国名によってまず区分けられ、続いて、次の順序に従い各国のデータを並べ替える。 # (1) 幾つかの地理的な意義による、かつ # (2) 最大の人口を持つゾーンを先頭に配置する。ただし(1)と矛盾しないようにすること。
区域
[編集]1970年以後での複数国に及ぶタイムゾーン
[編集]1970年以後において、2つの国に及ぶ地域を含むタイムゾーンが2つ存在する。tzdataはISO 3166-1の規格通りの国ならびに国名コードの定義に従っている(ISO 3166-1はその先行規格、ISO 3166を1974年に初めて公開している)。
- Asia/Aden - 1990年まではこのタイムゾーンは2つの国、北イエメン、イエメン・アラブ共和国(首都サナア、ISO 3166-1: YE)と南イエメン(首都アデン、ISO 3166-1: YD, ISO 3166-3: YDYE)に分かれていた。
- Europe/Berlin - 1990年まではこのタイムゾーンは西ドイツ(ISO 3166-1: DE)と東ドイツ(ISO 3166-1: DD, ISO 3166-3: DDDE)に分かれていた。
1970年以前のデータ
[編集]1970年より以前のデータに関しては、地域のタイムゾーンを同定する都市名を修正するよう注意を払っている。しかし、必ずしも地域全体でそのような修正が必要とは限らない。なぜなら1970年時点からの標準時を区別する場合にのみ、新しい地域が作成されるからである。
例えば、1963年10月23日から1963年12月9日までブラジル、ミナスジェライス州、エスピリトサント州、リオデジャネイロ州、サンパウロ州は夏時間制度を採用していた。しかし、1970年からの標準時はこの地域全体では同一であったため、タイムゾーンAmerica/Sao_Pauloを分割する要求は却下された[56]。
ドイツ時間の例では、トライゾーン内でベルリンと異なる夏時間を採用していた1945年に関しては、タイムゾーンEurope/Berlinは正しい時刻を示していないとされる。[要出典]
誤情報
[編集]かつて誤ったタイムゾーンが含まれていたケースがあった。とりわけ日本標準時における誤りについては、記事"日本標準時#South Ryukyu Islands時間"等[57]を参照されたい。これは前述したThe International Atlasの第3版に誤った記述が含まれていたため起こった。
利用法と拡張
[編集]タイムゾーンの境界
[編集]経緯度に基づく地理的な「境界線」(国境線ではない)の情報はTime Zone Databaseの一部ではない。しかしながら、境界線に関する情報は存在し、エリック・ミュラー(Eric Muller)が、Time Zone Databaseに収録されている「タイムゾーンに関する『境界線』」をベクター図形のイメージに表現したものを一般に公開している(上図)[14]。このベクター図形を利用すると、地球上の経緯度上の各地点に位置づけられる、Time Zone Database上のタイムゾーンを決定できる。
その他の標準の利用
[編集]CLDRはUN/LOCODEを地域同定に利用している[58]。この実装は全ての識別子が国家を参照しており、Time Zone Databaseの開発元が避けたいと思っている事項も含まれている。
ソフトウェアシステムにおける利用
[編集]Time Zone Database は多くのコンピュータシステム上でタイムゾーン処理とタイムゾーン変換のために利用されている。以下のような例が挙げられる。
- オペレーティングシステム
- Microsoft Windows 以外のほとんどのOSで使われている。マイクロソフトは独自に時間帯の情報収集を行っている[59]。航空業界も独自のIATAタイムゾーンがある。
- Unix系
- BSDの派生システム、とりわけBSDの子孫と呼ばれる、FreeBSD、NetBSD、OpenBSD、DragonFly BSD。またmacOSも含まれる。これらのOSはTime Zone Databaseが処理するコードをOS固有の「TZ POSIX API実装」として参照している。
- GNU Cライブラリとそれを利用するシステム。例えばGNUオペレーティングシステム (GNU Hurd) と大部分のLinuxディストリビューション[60]、その他BeOS、Haiku、Nexenta OS、Cygwin。
- System V Release 4の派生システム、例えばSolarisとUnixWare。
- IBM AIX 6.1以降[61][62](初期のAIXのバージョン、とりわけAIX 5.2時点ではzoneinfoは含まれていた[63]。これはMySQLのようなサードパーティーアプリケーションのサポートのためである[64]。しかし実際にはそれは利用不可能だった[63][65])。
- Tru64
- UNICOS/mp
- IRIX
- OpenVMS
- プログラミング言語
- Java Runtime Environment。2002年の1.4リリースより利用している。
- Perlモジュールである、DateTime::TimeZone[66]、DateTime::LeapSecond[67]が2003年より利用している。
- PHPは2005年の5.1.0リリースより採用している。
- Pythonは dateutil や pytz などのパッケージ[68]。
- .NET Frameworkは、Windows 以外では IANA の Time Zone Database が使われている[69]。Windows では TimeZoneConverter[70] や zoneinfo[71]などのライブラリ。
- Embarcadero Delphi用モジュールのdelphi-tzdb[72]。
- その他ソフトウェア
- Oracle Database。2004年の10gリリースから採用している[73]。
- PostgreSQL。2005年のリリース8.0から採用している。
- ファームウェア内で利用するIP clocks、その他組み込みソフトウェア。
その他、Olson timezone IDというものがユニコードコンソーシアムのCLDR並びにICUで利用されている。例えば、「CLDR Windows → Tzid」テーブルは、Microsoft Windows time zone IDsから標準的Olson名へのマッピングを行う[74]。
実例
[編集]Unix系システム
[編集]Linuxディストリビューションをはじめとする多くのUnix系システムにおいて、タイムゾーンデータが格納されている標準的なディレクトリパスは/usr/share/zoneinfo/である。ファイルの形式識別用コマンドであるfileは、次の実行例のように、バイナリ形式のタイムゾーンファイル内部からデータを読み出し、人間が理解しやすいテキスト形式で表示する機能をサポートしている。
$ file /usr/share/zoneinfo/Japan /usr/share/zoneinfo/Japan: symbolic link to Asia/Tokyo $ file /usr/share/zoneinfo/Asia/Tokyo /usr/share/zoneinfo/Asia/Tokyo: timezone data, version 2, 4 gmt time flags, 4 std time flags, no leap seconds, 9 transition times, 4 abbreviation chars
Unix系システムにおいて、環境変数TZにTime Zone Databaseのタイムゾーンを指定しdateコマンドの出力結果が変化する様子を示す。シェルのロケールは日本(例: 環境変数LANG=ja_JP.UTF-8など)に指定されているものとする。またOSのインストール時に指定したタイムゾーンは日本標準時であるものとする。タイムゾーン設定はGNU Cライブラリでは/etc/localtimeファイルに保存され、コンパイル済みタイムゾーンデータは/usr/share/zoneinfoディレクトリ以下に保存されることが多いとされる。
dateコマンドは引数に何も指定しないで実行した場合、デフォルトではシステム時刻と/etc/localtimeのシステム・タイムゾーン設定を検知し両者を表示する。
$ date 2011年 1月 1日 土曜日 12:00:00 JST
日本標準時を明示的に指定する場合は以下となる。
$ TZ=Asia/Tokyo date 2011年 1月 1日 土曜日 12:00:00 JST $ TZ=Japan date 2011年 1月 1日 土曜日 12:00:00 JST
フランスは中央ヨーロッパ時間(CET)を採用している。TZに指定した場合の結果は以下となる。
$ TZ=Europe/Paris date 2011年 1月 1日 土曜日 04:00:00 CET
フランスでは4月は夏時間施行期間であるため、3ヶ月後は、
$ TZ=Europe/Paris date -d '3 months' 2011年 4月 1日 金曜日 05:00:00 CEST
POSIX形式では、グリニッジ子午線の西回りを正の符号で表記する。符号に注意せよ。
$ TZ=Etc/GMT-9 date 2011年 1月 1日 土曜日 12:00:00 GMT-9 $ TZ=Etc/GMT+9 date 2010年 12月 31日 金曜日 18:00:00 GMT+9
TZに無効な文字列を指定した場合、すべて協定世界時(UTC)であると見なされる。
$ TZ=foo date 2011年 1月 1日 土曜日 03:00:00 foo
よくある間違いはTZにJSTと指定してしまうことである。これだとTZにUTCを指定した場合と同じになってしまう。POSIXのTZ環境変数の表記に合わせるならば、JST-9と指定しなければならない(符号の正負に注意せよ)。tz databaseの作者はtz databaseが利用できる環境ならば、このようなPOSIX表記を利用せずとも、最初に挙げたAsia/Tokyo
のような〈大州〉/〈地域〉
表記を利用した方が誤りを軽減できると述べている[6]。
$ TZ=JST date 2011年 1月 1日 土曜日 03:00:00 JST $ TZ=JST-9 date 2011年 1月 1日 土曜日 12:00:00 JST
脚注
[編集]注釈
[編集]出典
[編集]- ^ Olson, Arthur David (2011年9月26日). “data2011k.tar.gz” (英語). 2011年10月7日閲覧。
- ^ Releases · eggert/tz
- ^ tz/LICENSE at master · eggert/tz
- ^ doc: document public-domain status of files, and streamline README · eggert/tz@ca267f2
- ^ Sources for Time Zone and Daylight Saving Time Data
- ^ a b Eggert, Paul; Olson, Arthur David (2007年11月29日). “Sources for time zone and daylight saving time data”. 2007年12月3日閲覧。
- ^ tz/README at master · eggert/tz
- ^ a b ICANN to Manage Time Zone Database
- ^ Olson, Arthur David (1986年12月16日). "Resolved timezone issue? Other issues. New ctime manual page". tz (Mailing list).
- ^ Eggert, Paul (2005年1月). "Re: FW: IANA time zone registration - proposal". tz (Mailing list).
- ^ Eggert, Paul (1993年10月20日). "proposal for time zone names". tz (Mailing list).
- ^ Olson, Arthur David (1987年3月18日). "Re: ist of issues". tz (Mailing list).
- ^ Devine, Bob (1988年6月2日). "leap seconds; [0-60] is ok". tz (Mailing list).
- ^ a b Muller, Eric. “A map of the TZ timezones of the world”. 2011年4月10日閲覧。
- ^ Olson, Arthur David (1986年11月24日). "seismo!elsie!tz ; new versions of time zone stuff". tz (Mailing list).
- ^ “Shanks, Thomas”. www.astro.com. 2011年10月7日閲覧。
- ^ e.g. The American Atlas: US latitudes and longitudes, time changes, and time zones, San Diego 1978, ACS publications
- ^ e.g. The International Atlas: World latitudes, longitudes, and time changes, San Diego 1985, ACS publications
- ^ a b c d “Time zone database shut down”. www.thedailyparker.com (2011年10月6日). 2011年10月7日閲覧。
- ^ Eggert, Paul (1995年11月11日). "questions and comments on http://tycho.usno.navy.mil/tzones.html". tz (Mailing list).
- ^ “zoneinfo tzcode and tzdata archives (FTP)”. 2007年10月30日閲覧。
- ^ “Astrolabe, Inc. v. Olson et al”. dockets.justia.com (2011年9月30日). 2011年10月7日閲覧。
- ^ “Astrolabe, Inc. v. Arthur David Olson et al”. www.rfcexpress.com (2011年9月30日). 2011年10月7日閲覧。
- ^ “Astrolabe, Inc. v. Olson et al”. archive.recapthelaw.org (2011年9月30日). 2011年10月17日閲覧。
- ^ a b c d e “ASTROLABE, INC., Plaintiff, v. ARTHUR DAVID OLSON and PAUL EGGERT, Defendants.”. web.mit.edu (2011年9月30日). 2011年10月8日閲覧。
- ^ “Astrolabe, Inc., v. Arthur David Olson and Paul Eggert”. www.docstoc.com (2011年9月30日). 2011年10月7日閲覧。
- ^ a b c Olson, Arthur David (6 October 2011). "Civil suit; ftp shutdown; mailing list shutdown". tz (Mailing list). 2011年10月7日閲覧。
- ^ “ASTROLABE: ACS PC Atlas”. alabe.com. 2011年10月7日閲覧。
- ^ “Time-zone database - Astrolabe's opinion”. blog.joda.org (2011年10月13日). 2011年11月4日閲覧。
- ^ “Time-zone database down”. blog.joda.org (2011年10月6日). 2011年11月4日閲覧。
- ^ “17 U.S.C. § 102”. www.law.cornell.edu. 2011年11月5日閲覧。
- ^ “Civil Suit Filed, Involving the Time Zone Database”. Slashdot. Geeknet, Inc. (2011年10月6日). 2011年10月8日閲覧。
- ^ EFF Wins Protection for Time Zone Database, 電子フロンティア財団, (2012-02-22)
- ^ P. Eggert (2011年1月27日). “IANA Procedures for Maintaining the Timezone Database - draft-lear-iana-timezone-database-02”. tools.ietf.org. 2011年5月6日閲覧。
- ^ Takao Hotta (2011年3月4日). “これからのタイムゾーン・データベース(tzdata)の管理方法”. yebo-blog.blogspot.com. 2011年10月13日時点のオリジナルよりアーカイブ。2011年5月6日閲覧。
- ^ “tz -- Time Zone registry (RFCxxxx) discussion”. mm.icann.org. 2011年10月9日閲覧。
- ^ Elz, Robert (2011年10月7日). "[tz] temporary timezone database home ..." tz (Mailing list) (英語). 2011年10月9日閲覧。
- ^ "ICANN to Manage Time Zone Database" (PDF). Internet Corporation for Assigned Names and Numbers (Press release). www.icann.org. 2011年10月14日. 2011年10月17日閲覧。
- ^ a b Anick Jesdanun (2011年10月16日). “Time zone database has new home after lawsuit”. Associated Press 2011年10月17日閲覧。
- ^ a b Anick Jesdanun (2011年10月16日). “Time zone database has new home after lawsuit”. USA Today 2011年10月17日閲覧。
- ^ “Time Zone Database - Latest version” (英語). Internet Assigned Numbers Authority. www.iana.org (2016年11月23日). 2016年12月25日閲覧。
- ^ dr.hingston (2011年10月15日). "[tz] ICANN News Alert - ICANN to Manage Time Zone Database". tz (Mailing list) (英語). 2011年12月31日閲覧。
- ^ ftp://ftp.iana.org/tz/
- ^ tz/zic.c at master · eggert/tz
- ^ “Man page of ZIC”. JM Project. 2011年4月10日閲覧。
- ^ “zic.c”. sourceware.org (2009年6月15日). 2011年5月5日閲覧。
- ^ “TimeZoneChanges - Debian Wiki”. Debian (2009年10月31日). 2011年5月6日閲覧。
- ^ Theoryという名前のテキストファイルが"tzcode"頒布物の中に含まれている。tzcode2007h.tar.gz 2007年10月1日参照。
- ^ “The Single UNIX ® Specification, Version 2 - Environment Variables”. pubs.opengroup.org. 2011年4月14日閲覧。 “TZ Timezone information.[...]”
- ^ “Manpage of TZSET”. JM Project. 2011年4月14日閲覧。
- ^ Time Zone Databaseのソースアーカイブ内にあるテキストファイル"etcetera"などを参照。バージョン2011gで確認。
- ^ Olson, Arthur David (2010年5月1日). "proposed time zone package changes (Bahia de Banderas; version naming)". tz (Mailing list).
- ^ tz/zone1970.tab at master · eggert/tz
- ^ tz/zone.tab at master · eggert/tz
- ^ New file time.tab, superseding zone.tab · eggert/tz@5ddc47f
- ^ Olson, Arthur David (2010年1月6日). "RE: little nuance in brazil 1963". tz (Mailing list). 2011年5月5日閲覧。
- ^ “日本の標準時”. www.sat.t.u-tokyo.ac.jp. 2011年4月10日閲覧。
- ^ “Unicode Locale Extension (‘u’) for BCP 47”. cldr.unicode.org. 2011年5月6日閲覧。
- ^ Daylight Saving Time & Time Zone - Microsoft Tech Community
- ^ “Package: tzdata”. Debian. 2011年4月10日閲覧。
- ^ “Olson time zone support and setup”. AIX 7.1 information. IBM. 2011年3月12日閲覧。
- ^ “Managing the Time Zone Variable”. IBM (2007年2月2日). 2011年3月11日閲覧。
- ^ a b “AIX O/S updated to support 2007 Daylight Saving Time change”. IBM (2007年10月18日). 2011年3月12日閲覧。
- ^ “2007 daylight savings time changes for Unix”. Academic Computing and Communications Center, University of Illinois at Chicago (2007年2月25日). 2008年3月18日閲覧。
- ^ Wickremasinghe, Christopher (2009年3月30日). “Introduction of daylight saving time in Western Australia 2006”. AIX Wiki. IBM. 2011年3月11日閲覧。
- ^ “DateTime-TimeZone”. search.cpan.org (2011年4月25日). 2011年5月6日閲覧。
- ^ “DateTime”. search.cpan.org (2011年5月3日). 2011年5月6日閲覧。
- ^ “Python Package Index : pytz”. pypi.python.org (2011年4月1日). 2011年5月6日閲覧。
- ^ Cross-platform Time Zones with .NET Core | .NET Blog
- ^ mj1856/TimeZoneConverter: Lightweight libraries to convert between IANA, Windows, Rails, and POSIX time zones.
- ^ “ZoneInfo (tz database / Olson database) .NET API - Home”. zoneinfo.codeplex.com. 2011年5月6日閲覧。
- ^ “Olson Time Zone Database for Delphi”. code.google.com. 2012年1月3日閲覧。
- ^ Oracle Database Globalization Support Guide 10g Release 1 (10.1): Chapter 4, Section "Choosing a Time Zone File", Oracle Corporation, (June 2004), pp. 4–14, Part No. B10749-02 2011年5月6日閲覧。
- ^ “Zone → Tzid(former: Windows → Tzid)”. Unicode Consortium (2011年5月25日). 2011年10月7日閲覧。
関連項目
[編集]- Time Zone Databaseのタイムゾーンの一覧
- 標準時
- 夏時間
- システム時刻
- UNIX時間
- 環境変数 - Unix系システムの環境変数TZには、現在のシステム時刻のタイムゾーンが設定される。デフォルトではOSインストール時に指定した標準時が設定されている。
- date (UNIX) - 時刻表示コマンド。環境変数TZを変更することで、時刻を任意のタイムゾーンで表示できる。
- Unix系システムではTime Zone Databaseと以下のハードウェア、ソフトウェアを組み合わせることでシステム時刻を常に正しい時刻に同期できる。それぞれハードウェア的な時刻とソフトウェア的時刻(システム時刻)をうまく利用してシステム全体の時刻を管理している。Microsoft Windowsオペレーティングシステムでも同様の仕組みを持っている。
- リアルタイムクロック (Real-time clock, RTC) - Time Zone Databaseが利用するオペレーティングシステム・クロック(システム時刻)とは別個に保持しているハードウェア内部のクロック。GNU/Linuxなどでは、hwclockコマンドなどでOSブートアップ時にRTCを読み出し、OSのシステム時刻を設定する。シャットダウン時には今度は逆にhwclockがシステム時刻をRTCに書き込む。
- Network Time Protocol (NTP), NTPサーバ - ネットワーク経由の時刻同期プロトコル、時刻同期サーバ。外部の信頼できるNTPサーバに、システムで運用するNTPデーモン(ntpd)がアクセスする、または時刻同期コマンド(ntpdateなど)を利用することでシステム時刻を正しい時刻に同期できる。
外部リンク
[編集]![]() | この節の外部リンクはウィキペディアの方針やガイドラインに違反しているおそれがあります。 |
IANA管理下のリソース
[編集]- IANA — Time Zone Database - 公式ホームページ
- eggert/tz: Time zone database and code - GitHub上のソースコード
- tz -- Time Zone Database discussion - メーリングリスト
- IANA管理下のFTPサーバ
オルソン・エッガート管理によるかつてのリソース
[編集]- Sources for time zone and daylight saving time data - オルソン・エッガートが管理していたかつての tz database のホームページ