タイムゾーンのなんちゃかを本気出してまとめる

2023/12/24に公開
3

UTCとかタイムゾーンとか何言うてんのん。そして何回おれはこのあたりのワードをググっているのか?かなり雜めなメモになると思います。

知識

JavaScript の Date オブジェクトは、単一の瞬間の時刻をプラットフォームに依存しない形式で表します。 Date オブジェクトは協定世界時 (UTC) の 1970 年 1 月 1 日からの経過ミリ秒数を表す Number の値を含んでいます。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date

JavaScriptのDateはタイムゾーンを保持せず、UTC時刻からのミリ秒数を返すのみ

UTCとはどういう時刻ですか?
英国にあるグリニッジ天文台が基準とされたことから、GMT(Greenwich mean time)と呼ばれています。 UTC:Universal time coordinated(協定世界時)の略。 現在、世界で基準とされており、精度の高い原子時計と天体観測に基づいて決められた時間のことです。

https://citizen.jp/faq/detail/id1363#:~:text=英国にあるグリニッジ天文台,た時間のことです。

ほう

new Date()は常にUTC時刻になっている

ほんま???

console.log(new Date())
>> Sun Dec 24 2023 15:21:44 GMT+1100 (Australian Eastern Daylight Time)

...。よくわからん、、なんかそれらしい時刻情報入ってね?

console.log(new Date().getTimezoneOffset())
>> -660

おっ、なるほど?これが差分の時刻?(いま筆者はオーストラリアなので +11時間 の場所なのであってそう)

よくわからんけど、new Date()をした時点ではブラウザの?タイムゾーン情報は保持されてるぽい
これをDBにどう保存すんねんて話かあ

https://qiita.com/suin/items/296740d22624b530f93a

んー、タイムゾーン指定子を持ったISO 8601形式の日時のパース、、わからん。

一旦本気はここで終了

Ref

https://zenn.dev/dragontaro/articles/1fec905b14fde7

https://github.com/kawanet/cdate

Discussion

standard softwarestandard software

チャンレジしていただき、理解した内容を教えていただきたいです!

私は挫折気味です。
下記記事から2年以上も放置してしまいました。
日本のタイムゾーンなら簡単なのですが、世界全部のタイムゾーンのデータベース作ろうとすると非常に困難で、JSコードで普通に記載していくとコード量が莫大になってしまうという感じしました。

JavaScriptでタイムゾーンの呪いをといて、WindowsでタイムゾーンDB作っていく。 #JavaScript - Qiita
https://qiita.com/standard-software/items/c170f16edf2a17b7e543