我有使用Timestamp
的Firestore文档。我已经检查了代码的每个部分,并100%确定用于创建时间戳记的Instant
始终只包含诸如2020-05-01T00:00:00Z
之类的日期。但是,当我看着https://console.firebase.google.com时,会看到奇怪的事情。每个时间戳突然都有额外的时间。它是 1:00UTC UTC + 1 或 2:00:00 AM UTC + 2 。
为了将Instant
转换为Timestamp
,我使用以下扩展名:
fun Instant.toTimestamp(): Timestamp {
return Timestamp.ofTimeSecondsAndNanos(this.epochSecond, this.nano)
}
保存时客户端上的正确数据怎么可能变得不正确?我在这里想念什么?
我使用批处理更新,还检查了其中包含的突变,那里的一切都还不错。我将其所有时间戳转换回Instant
,但没有一个包含时间。为什么它们会出现在控制台中?
答案 0 :(得分:1)
时间戳不编码时区-它们始终是UTC。但是,Firebase Web控制台使用运行浏览器的本地计算机的时区配置显示时间戳(出于本地可读性)。如果您查询文档并获得时间戳记,则该时间戳记与您输入的时间相同(再次以UTC内部表示)。