esspec

ECMAScript仕様輪読会 第93回 議事録

このドキュメントは、ECMAScript仕様のTemporal API周辺、特にタイムゾーンと日付・時刻を扱う抽象操作(Abstract Operation)に関する輪読会の議論をまとめたものです。

1. 前回の振り返り

本編に入る前に、前回議論した内容について振り返りが行われました。

2. UTC(t) 抽象操作の読解

今回は LocalTime の逆操作である UTC(t) から読み進めました。この操作はローカル時刻 t をUTC時刻に変換します。

2.1. 操作の概要と複雑性

この操作の主な目的は、ローカル時刻をUTCのタイムスタンプ(Time Value)に変換することです。 複雑性の中心は、夏時間の切り替えなどによって発生する時刻の重複欠落の扱いです。

2.2. ノートでの具体例

仕様のノートでは、これらの複雑なケースについて具体的な例が挙げられていました。

2.3. 変換の非可逆性

LocalTime(UTC(tLocal)) が必ずしも元の tLocal と等しくならない、という往復変換の非可逆性についても言及されました。これは、時刻の重複・欠落があるためです。

3. 日付・時刻を構成する抽象操作

続いて、日付と時刻の各要素(年、月、日、時、分、秒など)から最終的なタイムスタンプを組み立てるための一連の抽象操作を読み進めました。

3.1. MakeTime(hour, min, sec, ms)

3.2. MakeDay(year, month, day)

3.3. MakeDate(day, time)

3.4. MakeFullYear(year)

3.5. TimeClip(time)

4. 次回予告

次回は DateTime String Format から読み進める予定です。