LoginSignup
1
0

More than 3 years have passed since last update.

jsのDate+firestore.Timestampの組み合わせの場合、タイムゾーンはそんなに気にしなくていい

Posted at

TL;DR

  • jsのDateもfirestore.Timestampもエポックミリ秒を持っているだけ
  • よってDate <==> Timestampの相互変換は可逆的
  • jsのDateはブラウザが勝手にタイムゾーンを決める
  • ただ、ゾーン切替のテストをしたい場合や、別ゾーン表示は面倒

jsのDateもfirestore.Timestampもエポックミリ秒を持っているだけ

consoleの出力やfirestoreの標準DBツールを見ると、TimeZoneまで表示される場合がありますが、
これはブラウザやDBツールが勝手にタイムゾーンを判断して出しているだけで、
どちらも内部的にはエポックミリ秒として管理されています。

DateのgetHoursやgetDateで出る値も、Dateが裏でよろしくやってくれています。

よって、別タイムゾーンでDateをfirestore.Timestamp形式でfirestoreに格納し、
別タイムゾーンのクライアントから呼び出してtoDateして表示すると、
いい具合にクライアントのタイムゾーンに切り替えて表示してくれます。

が、あえて変えたい場合は面倒

但し、このよろしくやってくれるタイムゾーン判定、
逆に手動で切り替えるAPIが標準で用意されていません。
別タイムゾーンでの挙動テストや、別タイムゾーンの時間で表示したい場合は
手計算をしたりとか、ライブラリの導入等が必要になります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0