datetime - 添加文档时添加到 Firestore 时间戳的时间
问题描述
我有使用Timestamp
. 我检查了我的代码的每一部分,我 100% 确定Instant
我用来创建时间戳的 s 总是只包含像2020-05-01T00:00:00Z
. 但是,当我查看https://console.firebase.google.com时,我看到了奇怪的东西。每个时间戳都突然增加了额外的时间。它是1:00:00 AM UTC+1或2:00:00 AM UTC+2。
为了转向Instant
我Timestamp
使用这个扩展:
fun Instant.toTimestamp(): Timestamp {
return Timestamp.ofTimeSecondsAndNanos(this.epochSecond, this.nano)
}
保存时客户端上的正确数据怎么可能变得不正确?我在这里想念什么?
我使用批量更新,我还检查了它包含的突变,那里的一切都很好。我将它的所有时间戳都转换回Instant
s 并且它们都不包含时间。为什么它们会出现在控制台中?
解决方案
时间戳不编码时区 - 它们始终是 UTC。但是,Firebase Web 控制台使用运行浏览器的本地计算机的时区配置显示时间戳(为了本地可读性)。如果您查询文档并取回时间戳,它将与您输入的时间相同(同样,在内部以 UTC 表示)。
推荐阅读
- tensorflow2.0 - AttributeError:“AutoTrackable”对象在运行从保存的模型加载的 tf.estimator 模型时没有属性“评估”
- c# - 我正在使用 .Net frameWork 4.7.2 (webforms) 在 c# 中制作语音识别代码。当我说打开谷歌时,我希望它打开谷歌
- c# - 从 NET Core 2.1 迁移到 NET Core 3.1
- php - Twig & Nunjucks 问题
- c# - 使用 C# 重新解析已经包含星号字符替换的字符串
- sql - 我无法创建实例,出现错误
- wordpress - 如何使用引导程序在 wordpress 插件开发中的模态中加载模态?
- typescript - 属性不存在 - Axios & TS
- c++ - 用算法替换 for-loop (c++)
- python - 无法使用 Beautifulsoup 正确抓取标签