什么是存储日期的最佳方式?

4

我对基于时区存储日期的方法还不熟悉。

需要了解在数据存储中存储日期的标准方式。

我的要求是:

  1. 能够轻松地根据日期范围查询日期。
  2. 使用客户端选择的适当时区显示日期(我已经有一个维护时区的表格)。
  3. 还能够在数据存储管理员控制台中进行查询。

如有任何建议/想法,将对进一步工作非常有帮助。


将日期和时间与区域偏移量(用于时区)一起存储。时区是ISO标准。 - DwB
如果我将其存储在默认的UTC中,那么在显示视图时可以进行转换,对吗? - rolling stone
我相信SimpleDateFormat有一个区域偏移字符(我想是Z)。 - DwB
那么,为什么我需要时区偏移呢? 你是在使用Google App Engine吗?它需要易于查询,既可以使用我编写的Java程序,也可以使用数据存储查看器。 - rolling stone
1
时区偏移量是一个数据差,用于将时间转换为所在时区的“本地时间”。例如,“13:00 -0300”表示该时区比GMT早3小时,因此为1300小时。我相信这意味着1300小时是GMT时间,而1000小时是“本地时间”。 - DwB
你需要时区偏移量,这样你才能确定不同时区中两个时间之间的关系。例如,“1200 -0300”和“1300 -0400”是同一时间。 - DwB
2个回答

1

始终将数据/时间转换并存储为UTC,以便数据变得易于理解且不含歧义。

仅在显示目的时将日期/时间转换回用户的“本地时间”。


0

将日期存储为UTC/GMT等效的毫秒格式是一个好主意。这样做可以轻松地根据UI或服务器端的偏移量来回转换到适当的时区。我认为数据库中的日期应该是独立于时区的,以避免不必要的复杂性。

处理时区转换的最佳/简单方法是使用JavaScript从UI进行操作,因为客户端始终是本地时间。有多个JS插件可用于处理此操作。

这里是一个MomentJS


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接