絶対時刻はエポック(基準時刻)からの秒数で表現し、期間(duration)と瞬間(instant)を厳密に扱う必要がある。
人間向けの「暦的時間」はグレゴリオ暦などの規則に基づくが、うるう年やうるう秒、夏時間などで日や月の長さが変動する。
UTCは原子時計を基準とし、うるう秒調整で1日の秒数が変わるため、秒単位の計算には調整履歴を考慮する必要がある。
タイムゾーンは地域ごとのUTCオフセットルールの集合であり、夏時間や法改正でオフセットが変化し、同じ現地時刻が複数の絶対時刻に対応する場合や存在しない場合がある。
IANAタイムゾーンデータベースは1970年以降の過去・現在・将来のオフセット変遷履歴を提供し、正確な時刻変換に必須である。
設計例として、チャットではUTC保存とクライアントでの変換、イベント予約ではユーザーの意図(絶対時刻か現地時刻か)に応じた保存・再変換戦略が挙げられる。
タイムゾーンルール変更への対応は、IANAデータの定期更新とローカル時刻→UTC再計算などで行うのが実務的手法である。
Get notified when new stories are published for "🇯🇵 Hacker News 日本語"