- タイムゾーンは複雑だが、コンピュータがこれを実装しなければならないため、奇妙さは有限の範囲に収まる。
Asia/Kathmandu は UTC から見て変則的なオフセットを持つ。
Africa/Casablanca はタイムゾーンモデルにうまく当てはまらないため、ハードコードされている。
America/Nuuk は -01:00 からサマータイムを開始する。
Africa/Cairo と America/Santiago は 24時(0時ではない)にサマータイムを開始する。
Australia/Lord_Howe は最も奇妙なサマータイム規則を持つ。
PGXIIREAM: 教皇グレゴリウス13世がすべてを支配している
- 世界の大半はグレゴリオ暦に基づく時間システムを使っている。
- グレゴリオ暦は、年間を通して太陽の位置を一定に保つのに非常に有用である。
- UTC はグレゴリオ暦を現代的に公式化したものであり、世界中がこれを基準に時刻を設定している。
うるう秒は重要ではない
- 地球の自転は遅くなっており、それを補正するためにうるう秒が追加される。
- 多くのプログラミング言語では61秒を表現しないため、うるう秒は無視してよい。
- クラウドプロバイダは、うるう秒の間に時計をゆっくり進めることで問題を解決している。
奇妙なタイムゾーン
Asia/Kathmandu は変則的なオフセットを持つ
- ネパールは UTC より 5時間45分進んでいる。
- コンピュータは IANA タイムゾーンデータベースを通じてこの情報を知ることができる。
PDT や CET のような文字列には意味がない
- タイムゾーン識別子は曖昧なことがあり、多くのタイムゾーンが同じ識別子を共有している。
サマータイムのあるタイムゾーンはどのように表現されるのか?
- サマータイムの切り替え規則は複雑であり、コンピュータはそれに基づいて現地時刻を計算する。
Africa/Casablanca と Asia/Gaza は月に従うが、タイムゾーンは太陽に従う
- モロッコとガザはラマダンに合わせてサマータイムを調整しており、これはハードコードされている。
America/Nuuk は -1時にサマータイムへ切り替わる
- グリーンランドはヨーロッパと同じ時点でサマータイムを開始するが、現地時間では -1時に始まる。
America/Santiago と Africa/Cairo は 24時に切り替わる
- これらのタイムゾーンは 24時にサマータイムへ切り替わり、それは翌日にまたがることを意味する。
Australia/Lord_Howe は最も奇妙なサマータイム切り替えを持つ
- ロード・ハウ島では30分のサマータイム切り替えがある。
GN⁺ のまとめ
- タイムゾーンは複雑だが、コンピュータがこれを実装しなければならないため、奇妙さは有限の範囲に収まる。
Australia/Lord_Howe は30分のサマータイム切り替えを持つ、最も独特なタイムゾーンである。
- この記事はタイムゾーンの複雑さを理解するのに役立ち、プログラマにとって興味深い内容になりうる。
- 類似した機能を持つプロジェクトとして
tzdb がある。
1件のコメント
Hacker Newsのコメント
tzデータベースはビッグバン以前のタイムゾーン遷移を計算しない。ビッグバン以前のタイムスタンプは物理的に疑わしい
Africa/Addis_Ababa タイムゾーンはエチオピアでは誰も従っていない
プログラミング言語が61秒の分を表現できないというのは事実ではない
DateTime.pmもうるう秒をサポートしており、これは複雑さを増すAsia/Jerusalem タイムゾーンは宗教と国家の問題のため複雑である
アメリカの住所を基に現地時刻を見つける関数を書いた経験
パレスチナのタイムゾーンは固定日なしで、毎年政府が夏時間の開始と終了を発表する
タイムゾーンソフトウェアの柔軟性についての興味深い読み物
政府が夏時間を廃止し、翌年にタイムゾーンを移動すると混乱が生じる
tzデータベースはUTCとの差分を記録する diff の diff である
30分の夏時間差は最も奇妙なタイムゾーンではない