firebase - 我可以更改保存在 Firestore 时间戳字段中的时区吗?
问题描述
所以从这里的文档中说
Timestamp 表示独立于任何时区或日历的时间点,以 UTC 纪元时间的纳秒分辨率表示为秒和秒的分数
但这是我文档中的时间戳字段
如您所见,有 UTC+7。我来自印度尼西亚,我的 Firestore 数据库也在 asia-southeast2 地区(印度尼西亚雅加达)。
我的问题是......
我真的可以改变那个时区吗?即使文档说时间戳独立于任何时区。但我不明白为什么 Firestore 可以获取 UTC+7,这是正确的,因为我从印度尼西亚(UTC+7)发送数据
我尝试在我的 Android 应用程序中操作日期对象,并使用不同的时区 (UTC+9) 发送数据,但它始终会保存为 UTC+7。
所以基本上我试图找出我的代码中是否存在错误或firestore中的时区是否无法更改
解决方案
在 Firestore 中,时区不会编码为时间戳值。所有时间戳均以 UTC 计量。这对于所有主要操作系统的日期和时间都是正常的。您在控制台中看到的是针对您的本地计算机当前配置的时区格式化的时间戳值。如果您想在那里查看不同的时区,则必须更改计算机的配置时区。更改时间戳值本身并没有真正的帮助。
您的代码应该只创建和操作同样以 UTC 度量的时间戳值。如果您以某种方式接收到另一个时区格式的数据,则应先将其转换为 UTC,然后再创建时间戳。
推荐阅读
- date - 更改 SAS 日期格式
- javascript - 在创建页面之前未触发 Vue JS 中间件
- angular - 增加图例和图表之间的空间
- python - 使用python代码将记录从一个oracle数据库复制到另一个
- java - 您当前使用的是工具 API 版本 2.2.1。您应该将您的工具 API 客户端升级到 3.0 或更高版本
- sql - sql中的值计数
- java - 当我们使用关系一对多的两侧以及当我们使用它的一侧时
- flutter - 为什么 GridView.builder 创建相同的随机图像?
- javascript - Webpack 摇树在包之间不起作用
- r - 如何将两个输入传递给 R 中的 %>% 运算符