在 JSON API 中表示部分日期

mae*_*etl 2 rest json date semantics

我正在管理一个范围不断扩大的 RESTful JSON 数据 API。目前,我们通过网络将所有日期作为字符串“YYYY-MM-DD”返回,但我们还需要表示部分日期的概念。

我所说的部分日期是指具有未知组成部分的日期值,可以是年月,也可以是年。在我们的表示层中,这将被翻译为:

2009-09-03 =>  '3rd September 2009'
2009-09    =>  'September 2009'
2009       =>  'Undated 2009'
Run Code Online (Sandbox Code Playgroud)

这种类型的数据有没有先例或标准?例如,MySQL 通过在日期和日期时间字段中允许 00 个值来实现这一点 - 例如:'2009-00-00' 将直接保存到 MySQL 日期字段,但是当被大多数编程语言的日期库解析时,该值不会一致地转换.

在 JSON 提要中从语义上表示这种部分日期概念的最佳方法是什么?

理想情况下,我们将能够实现一个易于我们的消费者解析的解决方案,而且在文档中也可以直接解释。

Mat*_*hen 5

编辑:再考虑一下, YYYY-MM 和 YYYY 都是有效的ISO 8601,所以最好使用它。

JSON 日期(任何类型)没有标准,因为 JSON 是 JavaScript 文字语法的一个子集,而 JS 没有日期文字。请参阅http://msdn.microsoft.com/en-us/library/bb299886.aspx#intro_to_json_sidebarb