据我所知,当您存储日期时:
const date = firebase.firestore.Timestamp.fromDate(new Date())
您正在本地时区中存储日期对象。然而,当我后来从Firestore中读到这个日期时,使用:
doc.data().date.toDate()
这会给我UTC的日期,而不是本地时区。这是预期的行为吗?我的理解正确吗?由于您存储的日期是当地时间,因此以当地时间检索日期似乎更有意义。
当您使用
firebase.firestore.Timestamp.fromDate(new Date())
,您正在存储本地时区中的date对象。
这实际上是不正确的:Firestore中的所有时间戳都保存在UTC中。保存时间戳的用户的时区不会与时间戳值一起保存。
这是预期的行为吗?
是的,将值存储在UTC中为开发人员提供了最大的灵活性,使其能够根据自己的具体要求按需显示。
事实上,当在前端显示它时,这取决于开发人员用他想要的时区来显示它。例如,Firebase控制台将UTC日期转换为计算机配置的时区。