【问题标题】:What is the best way of storing date?存储日期的最佳方式是什么?
【发布时间】:2013-06-14 21:48:24
【问题描述】:

我是根据时区存储日期的新手。

需要知道在数据存储中存储日期的标准方法。

我的要求是

  1. 根据日期范围轻松查询日期。
  2. 用他选择的客户适当时区显示日期(我有一个单独为时区维护的表格)
  3. 还可以使用数据存储区管理控制台进行查询。

任何与此相关的建议/想法都将对进一步进行有很大帮助。

【问题讨论】:

  • 存储带有区域偏移量的日期和时间(对于时区)。时区是 ISO 标准。
  • 如果我将它存储在默认的 UTC 中,我可以在视图中显示它时转换它们吗?
  • 是的。我相信 simpledateformat 有一个区域偏移字符(我认为是 Z)。
  • 那么为什么我需要时区作为偏移量?你在使用谷歌应用引擎吗?它需要易于使用 java 程序 i 代码和数据存储查看器进行查询。
  • 区域偏移量是将时间转换为区域中的“本地时间”的增量。例如,“13:00 -0300”在距离格林威治标准时间 -3 小时的时区中是 1300 小时。我相信这意味着 1300 小时格林威治标准时间和 1000 小时“本地”时间

标签: java google-app-engine google-cloud-datastore


【解决方案1】:

始终以 UTC 格式转换和存储数据/时间,以便数据易于理解且不含糊

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

【讨论】:

    【解决方案2】:

    最好以 UTC/GMT 等效毫秒格式存储日期。结果,很容易根据来自 UI 或服务器端的偏移量来回转换到适当的时区。我相信数据库中的日期应该与区域无关,以避免不必要的复杂性。

    处理区域对话的最佳/简单方法是使用 JavaScript 从 UI 开始,因为客户端始终是本地时间。有多个 JS 插件可用于处理此问题。

    这是一个MomentJS

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 2011-08-28
      • 2017-09-18
      • 1970-01-01
      • 2017-12-20
      • 2011-05-07
      • 2012-10-03
      相关资源
      最近更新 更多