9

我正在编写一个公开 REST API 的应用程序。一些查询参数将是日期/时间(精确到秒),一些响应将是时间戳(精确到毫秒)。

服务器上的 API 实现是用 Java 编写的。客户端应用程序可以是任何东西 - java、javascript、.NET。API 返回 XML 或 JSON 数据。日期/时间数据存储在 Oracle 数据库中。

有没有人根据先前的痛苦建议传递这些日期/时间值的最佳格式是什么。我想自己只是使用一个老式的 long 来存储自 1970 年 1 月 1 日 00:00:00 GMT 以来的毫秒数。

编辑API 中涵盖的日期范围是针对实时事件的,因此在 2010 年之前不会有任何内容,并且(在这里设置我自己被滥用)在 2038 年之后没有任何内容。

我想最好的将由

a) 多种语言支持将此长转换为内部日期对象,而无需编写代码。

b) 最低的 CPU 开销(在服务器应用程序上)

4

1 回答 1

9

ISO 8601 一路走来

使用任何基于纪元的方法意味着您被绑定到有符号 32 位 INT 的范围(在大多数系统中)(1901-12-13T20:45:52+00:00 到 2038-01-19T03:14:07+ 00:00) 这实际上更像是一个时间戳而不是日期,因为它无法处理影响深远的历史或未来日期。

于 2010-08-24T16:20:52.960 回答