Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 添加到Firestore的时间';添加文档时的时间戳_Datetime_Kotlin_Google Cloud Firestore - Fatal编程技术网

Datetime 添加到Firestore的时间';添加文档时的时间戳

Datetime 添加到Firestore的时间';添加文档时的时间戳,datetime,kotlin,google-cloud-firestore,Datetime,Kotlin,Google Cloud Firestore,我有使用时间戳的Firestore文档。我已经检查了代码的每一部分,我100%确定我用来创建时间戳的即时s总是只包含像2020-05-01T00:00:00Z这样的日期。然而,当我看一眼的时候,我看到了奇怪的东西。每个时间戳中突然有额外的时间。它不是UTC+1的凌晨1:00:00就是UTC+2的凌晨2:00:00 为了将Instant转换为Timestamp,我使用此扩展名: fun Instant.toTimestamp(): Timestamp { return Timestamp.

我有使用
时间戳的Firestore文档
。我已经检查了代码的每一部分,我100%确定我用来创建时间戳的
即时
s总是只包含像
2020-05-01T00:00:00Z
这样的日期。然而,当我看一眼的时候,我看到了奇怪的东西。每个时间戳中突然有额外的时间。它不是UTC+1的凌晨1:00:00就是UTC+2的凌晨2:00:00

为了将
Instant
转换为
Timestamp
,我使用此扩展名:

fun Instant.toTimestamp(): Timestamp {
    return Timestamp.ofTimeSecondsAndNanos(this.epochSecond, this.nano)
}
保存时,客户端上正确的数据如何可能变得不正确?我错过了什么


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

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

确实如此!我创建了一个查询,从firestore获取所有文档,时间戳中没有时间。我松了一口气。控制台中只有一个显示错误:-(事实上,这根本不是一个错误-控制台正在按预期工作。嗯……当所有TimesTMap都有相同的偏移量时,我会理解它会按预期工作,但其中一些是+1,而另一些是+2。这似乎是非常随机的。难道不应该只有一个故障吗?正如我所说的,它使用本地机器的时区。如果你看到了某些故障如果有其他问题,请联系Firebase支持部门进行报告,并附上重现该问题的具体说明。