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

时间:2018-04-24 18:55:30

标签: rest datetime epoch

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

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

您对此解决方案有何看法?这种用法是否正常或我应该担心什么?感谢。

编辑:

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

1 个答案:

答案 0 :(得分:1)

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

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

Unix时间戳存在一些问题(它们可能存在与否可能是您的问题)

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