【问题标题】:can I change timezone saved in Firestore timestamp field?我可以更改保存在 Firestore 时间戳字段中的时区吗?
【发布时间】:2021-01-22 05:51:21
【问题描述】:

所以从here 的文档中可以看出

时间戳表示独立于任何时区的时间点或 日历,表示为秒和秒的分数 UTC 纪元时间的纳秒分辨率

但这是我文档中的时间戳字段

如您所见,有 UTC+7。我来自印度尼西亚,我的 Firestore 数据库也在 asia-southeast2 区域(印度尼西亚雅加达)。

我的问题是.....

我真的可以改变那个时区吗?即使文档说时间戳独立于任何时区。但我不明白为什么 Firestore 可以获取 UTC+7,这是正确的,因为我从印度尼西亚 (UTC+7) 发送数据

我尝试在我的 Android 应用中操作日期对象,并使用不同的时区 (UTC+9) 发送数据,但它始终会保存为 UTC+7。

所以基本上我试图找出我的代码中是否存在错误或firestore中的时区是否无法更改

【问题讨论】:

  • 假设您共享的屏幕截图来自 Firestore 控制台,这就是控制台显示时间戳的方式。该值(如文档所述)存储作为UTC中纪元的偏移量。我认为没有办法更改 Firebase 控制台的时区。如果您想知道您的代码中是否有大代码,那么查看您所询问的最小代码会有所帮助。

标签: firebase google-cloud-firestore timezone


【解决方案1】:

在 Firestore 中,时区不会编码为时间戳值。所有时间戳均以 UTC 计量。这对于所有主要操作系统的日期和时间都是正常的。您在控制台中看到的是为您的 本地 计算机当前配置的时区格式化的时间戳值。如果您想在那里查看不同的时区,则必须更改计算机的配置时区。更改时间戳值本身并没有真正的帮助。

您的代码应该只创建和操作同样以 UTC 度量的时间戳值。如果您以某种方式收到来自另一个时区的格式化数据,则应先将其转换为 UTC,然后再创建时间戳。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2019-12-10
    • 2021-12-31
    • 2021-08-27
    • 2020-12-12
    • 2017-12-04
    • 1970-01-01
    相关资源
    最近更新 更多