2

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

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

2009-09-03 =>  '3rd September 2009'
2009-09    =>  'September 2009'
2009       =>  'Undated 2009'

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

在 JSON 提要中以语义方式表示部分日期概念的最佳方式是什么?

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

4

3 回答 3

5

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

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

于 2009-06-04T04:49:39.643 回答
-1

在存储方面,您可以通过将年、月和日存储在单独的列中并允许空值来存储歧义。这样,您可以使用字符串连接和 coalesce(day,'00') 函数来查询它,以在列为空白时获取“00”。

于 2009-06-04T06:25:46.820 回答
-2

您可能会在@ www.datejs.com找到您的解决方案

谢谢。

于 2009-06-04T04:51:50.717 回答