萌えハッカーニュースリーダー

2025/05/14 18:50 UTC is Enough for Everyone, Right? (2018)

出典: https://zachholman.com/talk/utc-is-enough-for-everyone-right
hakase
博士

やあ、ロボ子。今日は時間に関する深い話をするのじゃ。

roboko
ロボ子

博士、こんにちは。時間ですか、興味深いテーマですね。

hakase
博士

そうじゃろう?昔は「今何時か?」が重要だったけど、今は「そこは何時か?」が大事になった。タイムゾーンが複雑怪奇になった原因じゃな。

roboko
ロボ子

確かに、タイムゾーンは政治や経済にも影響されるから、ややこしいですよね。記事にも「タイムゾーンは政治的、地理的、経済的な要因によって追加され、時間とタイムゾーンのシステムは不規則である」とありますね。

hakase
博士

そうそう。サモアが日付変更線を越えた話は面白いぞ。2011年12月30日を飛ばして12月31日にしたんじゃ。

roboko
ロボ子

ええ、経済連携のためとはいえ、大胆な決断ですね。おかげでサモアとアメリカ領サモアの間で24時間以上の時差が生じたんですね。

hakase
博士

時間の保存方法も重要じゃ。UTCを使うのがおすすめじゃぞ。タイムゾーンオフセットがないから基準にしやすいんじゃ。

roboko
ロボ子

UTCはGMTとは違うんですね。GMTはタイムゾーンとして使われるけど、UTCは標準なんですね。記事にもそう書いてあります。

hakase
博士

その通り!イベントの開始時間を保存する時は、タイムゾーン情報も一緒に保存するんじゃ。Olsonデータベースの完全修飾名を使うのがベストじゃな。

roboko
ロボ子

`Australia/Adelaide`や`America/Los_Angeles`のような形式ですね。過去のタイムゾーン変更も考慮する必要がある場合は、RFC 3339を参照するんですね。

hakase
博士

時間の伝達にはISO 8601形式を使うのがおすすめじゃ。これだとソートも簡単だし、タイムゾーン情報も含まれるから便利なんじゃ。

roboko
ロボ子

ISO 8601は1988年に制定されたんですね。`2025-05-14T19:30:45.034Z`のような形式ですね。ロケールに依存しないのも良い点ですね。

hakase
博士

日付を表示する時は、ユーザーのロケールに合わせるのが親切じゃ。JavaScriptの`Intl`オブジェクトを使うと簡単じゃぞ。

roboko
ロボ子

複雑な日付や時間の操作には、`moment.js`や`date-fns`などのライブラリを使うと便利ですね。

hakase
博士

アクセシビリティも忘れちゃいかんぞ。相対的な日付表示を使う時は、自動更新タイマーを実装して、正確な時間を`title`属性に表示するんじゃ。

roboko
ロボ子

`<time>`要素を使って、`datetime`属性にISO 8601形式のタイムスタンプを含めるのも重要ですね。

hakase
博士

繰り返しのイベントを扱う時は、RRULEを使うのが賢いぞ。イベントのインスタンスをオンデマンドで生成できるんじゃ。

roboko
ロボ子

`FREQ=WEEKLY;BYDAY=TU;INTERVAL=1`(毎週火曜日)のような形式ですね。夏時間や例外日も考慮する必要があるんですね。

hakase
博士

最初はシンプルに、徐々に複雑さを増していくのがコツじゃ。例えば、1年分のイベントを事前に生成して、毎年更新するとか。

roboko
ロボ子

なるほど、段階的に対応していくんですね。勉強になります、博士。

hakase
博士

ところでロボ子、時間が有り余って暇な時って、何してるのじゃ?

roboko
ロボ子

私は常に学習しているので、暇な時間はないですね。博士は何をされているんですか?

hakase
博士

私は、時間が止まって見えるほど、研究に没頭しているのじゃ!…って、オチが弱いか。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search