Firebase 我可以更改保存在Firestore时间戳字段中的时区吗?

Firebase 我可以更改保存在Firestore时间戳字段中的时区吗?,firebase,google-cloud-firestore,timezone,Firebase,Google Cloud Firestore,Timezone,所以从它的文档中可以看出 时间戳表示独立于任何时区或时间的时间点 日历,以秒和秒的分数表示 UTC历元时间内的纳秒分辨率 但这是我文档中的时间戳字段 如您所见,有UTC+7。我来自印度尼西亚,我的Firestore数据库也位于东南亚2区(印度尼西亚雅加达) 我的问题是 我能改变时区吗?尽管文档中说时间戳独立于任何时区。但我不明白为什么Firestore可以获得UTC+7,这是正确的,因为我从印度尼西亚(UTC+7)发送数据 我尝试在我的Android应用程序中操作date对象,并使用不同的时区

所以从它的文档中可以看出

时间戳表示独立于任何时区或时间的时间点 日历,以秒和秒的分数表示 UTC历元时间内的纳秒分辨率

但这是我文档中的时间戳字段

如您所见,有UTC+7。我来自印度尼西亚,我的Firestore数据库也位于东南亚2区(印度尼西亚雅加达)

我的问题是

我能改变时区吗?尽管文档中说时间戳独立于任何时区。但我不明白为什么Firestore可以获得UTC+7,这是正确的,因为我从印度尼西亚(UTC+7)发送数据

我尝试在我的Android应用程序中操作date对象,并使用不同的时区(UTC+9)发送数据,但它将始终保存为UTC+7


因此,基本上,我正在尝试找出我的代码中是否存在错误,或者firestore中的时区是否无法更改

在firestore中,时区未编码为时间戳值。所有时间戳均以UTC为单位测量。这对于所有主要操作系统的日期和时间来说都是正常的。您在控制台中看到的是针对本地计算机当前配置的时区格式化的时间戳值。如果您想在那里看到不同的时区,则必须更改计算机的配置时区。更改时间戳值本身并没有真正的帮助


您的代码应该只创建和操作同样以UTC度量的时间戳值。如果您以某种方式接收来自另一时区的格式化数据,则应在创建时间戳之前先将其转换为UTC。

在Firestore中,时区不编码为时间戳值。所有时间戳均以UTC为单位测量。这对于所有主要操作系统的日期和时间来说都是正常的。您在控制台中看到的是针对本地计算机当前配置的时区格式化的时间戳值。如果您想在那里看到不同的时区,则必须更改计算机的配置时区。更改时间戳值本身并没有真正的帮助


您的代码应该只创建和操作同样以UTC度量的时间戳值。如果您以某种方式接收到来自另一时区的格式化数据,则应先将其转换为UTC,然后再创建时间戳。

假设您共享的屏幕截图来自Firestore控制台,那么控制台就是这样显示时间戳的。该值(如文档所述)存储为UTC中历元的偏移量。我认为没有办法改变Firebase控制台的时区。如果你想知道你的代码中是否有一个大的时间戳,那么查看你询问的最小代码会有帮助。假设你共享的屏幕截图来自Firestore控制台,那么控制台就是这样显示时间戳的。该值(如文档所述)存储为UTC中历元的偏移量。我认为没有办法改变Firebase控制台的时区。如果你想知道你的代码中是否有大的错误,那么看看你所问的最小的代码会有帮助。