确定记录顺序的日期时间格式

Datetime format to determine records order

我们需要通过 rest 在长轮询中从各种类型的数据库中发送一些对象。发送数据,每条记录都包含时间戳。当客户端从服务器接收到新数据时,他应该创建另一个轮询请求,并将记录的时间戳作为参数,这有助于指定以下数据记录。

我考虑了纪元 unix 时间并将此值存储在数据库中的每条记录中以进行过滤,并且此值将随每个轮询请求一起发送。

您如何看待这个解决方案?这种用法可以吗,还是我应该担心什么?谢谢。

编辑:

我忘记通知这些数据将由不同时区的客户添加。这也是我考虑使用unix时间的另一个原因。

任何存储时间戳的格式都可以,只要用户能够明确地解释它即可。 API 中的时间戳格式没有理由与数据库中的相同。 API 的想法是将模型与数据库解耦。

就我个人而言,我会从 ISO 8601 基本和扩展符号 中选择一种格式。示例:2008-09-15T15:53:00。在几乎所有的编程语言中,都有处理这种格式的方法(转换为 unix 时间戳或内部 date/time 类)。对于 java,您将使用 java.time.LocalDateTime#parse

Unix 时间戳有一些问题(它们可能对您来说是问题,也可能不是问题)

  • 无法表示 1970 年 1 月 1 日之前的日期
  • 无法表示 2038 年 1 月 19 日之后的日期
  • 人类无法阅读
  • 不包含时区(时间戳本身没有时区的概念,但将时区与时间戳一起发送给客户端可能会有用。服务器可能始终将值规范化为 UTC)