Firestore Timestamp.toDate()以UTC为单位返回日期



我正在将时间戳作为DateTime(2020, 02, 29, 9)从我的flutter应用程序上传到Firestore文档

时间戳作为February 29, 2020 at 9:00:00 AM UTC-6存储在Firestore中

使用document['timestamp'].toDate().hour从flutter应用程序检索时间戳时,会按预期返回"9"。

在云函数中获取此数据时会出现此问题。snap.timestamp.toDate()在不考虑时区偏移的情况下将日期对象返回为Sat Feb 29 2020 03:00:00 GMT+0000 (UTC)

如何检索与存储在firestore中的时间相同的时间,而不是以UTC获取时间。

Firestore中的时间戳表示为与UTC中的epoch时间的偏移量。时间戳中没有编码时区。当您在Firestore控制台中查看时间戳字段时,它将使用本地计算机的配置时区格式化日期。

JavaScriptDate对象是相似的,它们也不存储时区。当打印日期的字符串表示时,它会添加一个时区,但这只是字符串格式的一部分。如果你想处理没有时区的日期和时间戳,就不要使用这种字符串格式。

如果要处理没有时区的日期,则应忽略这些日期的格式化字符串表示。只需以编程方式处理它们,或者使用一个日期库,该库允许您使用自己喜欢的时区来格式化日期。

相关内容

  • 没有找到相关文章

最新更新