Temporal
現状への課題と特徴
ユーザーの現地時間と UTC 以外のタイムゾーンはサポートされない パーサーの動作が信頼性が低すぎて使用できない
日付オブジェクトが何を指しているのかわかりづらい
サマータイム動作が不安定
日時計算の API が扱いにくい
非グレゴリオ暦がサポートされていない
Wall-Clock Time
カレンダーに依存した日付・時刻
Exact Time
UTC 時間
地球上のどこでも同じ日付・時刻
パースするための日時を表す文字列が厳密になった
これらがカバーしていない情報がある
IANA タイムゾーン名
「月と日」の構文
カレンダーシステム
特にカレンダーとタイムゾーンは形式を定めている
https://tc39.es/proposal-temporal/docs/persistence-model.svg
サマータイムや非グレゴリオ歴にも対応
日時を表すデータ形式
ExactTimeを持っているデータ形式
UNIXエポックからの時間をナノ秒単位の精度で保存している
カレンダーとタイムゾーンの情報を持たない
Plain〇〇
持つ・持たない
Exact Timeの情報を持たない
タイムゾーンの情報を持たない
カレンダー情報は持つものもある(日付系は基本持つ)
デフォは ISO 8601 calendar
この「カレンダーのこの日!この時間!」みたいな情報だけを持っている
それが地球上のどこのいつなのかを気にしない
Exact Time・タイムゾーン・カレンダー情報などを全てもつ情報
その他必要なデータ構造
タイムゾーンに関するもの
exact time と wall-clock を相互に変換できる
Calendarに関するもの
独自のカレンダーシステムも作れるみたい
時間の長さのデータ
https://gyazo.com/855b3fc4bfff97c1c14f4ef132600597
各データ形式の主要API
変換