Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Temporalはなぜ必要なのか

Avatar for fuku fuku
January 29, 2024

 Temporalはなぜ必要なのか

Avatar for fuku

fuku

January 29, 2024

More Decks by fuku

Other Decks in Technology

Transcript

  1. Exact Time と Wall-Clock Time ❏ Exact Time とは 国際的な定義を持っており、

    UTC という特別なタイムゾーンによって定義される時間のこと。 Unix epoch(1970 年 1 月 1 日の真夜中)からの差分を数値で表すことができる。 ❏ Wall-Clock Time とは サマータイムやタイムゾーンによって影響を受けるようなローカルな時間のこと。 UTC Offset によって定義され、 UTC からどれだけ離れているかを表す。 例えば、日本の場合は、 `+09:00` となる。
  2. ①正確でないソースから Exact Time を作成する場合 '2019-02-19'や'2019-02-19T00:00'といった日付や日時には、オフセット情報が含まれない。 →ブラジルのサンパウロの日時に変更する時に、元の時間がどこの時間かによって、結果が異なる可能 性が生まれる。 これを解決するため、曖昧性が生まれる変換時に disambiguationオプションをつける。これは、タイム ゾーンの正負方向の変化に合わせて

    Exact Time を返却する。 これによって、曖昧性を解決する。 // オフセットがわからないので曖昧になる可能性があります! const zdt1 = Temporal.PlainDate.from('2019-02-19').toZonedDateTime('America/Sao_Paulo'); // 曖昧 const zdt2 = Temporal.PlainDateTime.from('2019-02-19T00:00').toZonedDateTime('America/Sao_Paulo'); // 曖昧