在JSON API中表示部分日期

时间:2009-06-04 04:40:10

标签: json rest date semantics

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

我的意思是部分日期是具有未知组件的日期值,无论是年月还是仅年。在我们的表示层中,这将被翻译为:

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

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

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

理想情况下,我们可以实现一个易于解析的解决方案,但也可以直接在文档中进行解释。

3 个答案:

答案 0 :(得分:4)

编辑:再次考虑这个问题,YYYY-MM和YYYY都是有效的ISO 8601,所以最好只使用它。

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

答案 1 :(得分:-1)

您可以找到您的解决方案@ www.datejs.com

感谢。

答案 2 :(得分:-1)

就存储而言,您可以通过在单独的列中存储年,月和日来存储歧义,并允许空值。这样你可以使用字符串连接和coalesce(day,'00')函数查询它,如果列是空白的话,可以获取'00'。