首页 > 解决方案 > 添加文档时添加到 Firestore 时间戳的时间

问题描述

我有使用Timestamp. 我检查了我的代码的每一部分,我 100% 确定Instant我用来创建时间戳的 s 总是只包含像2020-05-01T00:00:00Z. 但是,当我查看https://console.firebase.google.com时,我看到了奇怪的东西。每个时间戳都突然增加了额外的时间。它是1:00:00 AM UTC+12:00:00 AM UTC+2

为了转向InstantTimestamp使用这个扩展:

fun Instant.toTimestamp(): Timestamp {
    return Timestamp.ofTimeSecondsAndNanos(this.epochSecond, this.nano)
}

保存时客户端上的正确数据怎么可能变得不正确?我在这里想念什么?

我使用批量更新,我还检查了它包含的突变,那里的一切都很好。我将它的所有时间戳都转换回Instants 并且它们都不包含时间。为什么它们会出现在控制台中?

标签: datetimekotlingoogle-cloud-firestore

解决方案


时间戳不编码时区 - 它们始终是 UTC。但是,Firebase Web 控制台使用运行浏览器的本地计算机的时区配置显示时间戳(为了本地可读性)。如果您查询文档并取回时间戳,它将与您输入的时间相同(同样,在内部以 UTC 表示)。


推荐阅读