如何用JSON表示日期和/或时间信息?

Ati*_*ziz 19 json data-formats

JSON文本(RFC 4627)具有对象,数组,字符串,数字,布尔值(字面意思truefalse)的明确表示null.但是,它没有定义用于表示时间信息,如日期和时间,这在应用程序中非常常见.考虑到RFC 4627中规定的约束和语法,目前使用哪种方法来表示JSON中的时间?

对受访者的注意:这个问题的目的是记录已知流通的各种方法以及实例和相对的利弊(理想情况来自现场经验).

Mat*_*ley 13

我在使用中看到的唯一表示(虽然,不可否认,我的经验仅限于DOJO)是ISO 8601,它运作良好,并且代表了您可能想到的任何事物.

例如,您可以访问上面的链接.

优点:

  • 几乎代表你可以抛出的任何东西,包括时间跨度.(即3天,2小时)

缺点:

  • 嗯......实际上我不知道.除了可能需要一些习惯吗?如果没有内置函数来解析它,那么解析它当然很容易.


Veb*_*osa 5

ISO 8601似乎是一个自然的选择,但是如果你想用在浏览器中运行的JavaScript解析它,你将需要使用一个库,因为浏览器支持Date可以解析ISO 8601日期的JavaScript 对象的部分是不一致的,即使在相对较新的浏览器中.ISO 8601的另一个问题是它是一个大型,丰富的标准,并且日期/时间库仅支持其中的一部分,因此您必须选择要使用的库的ISO 8601子集.

相反,我将时间表示为自1970-01-01T00:00Z以来毫秒数.Date在很多旧版浏览器中,对象的构造函数可以理解这一点,至少可以回到IE7(这是我测试过的最早的版本).


Oli*_*Oli 2

没有固定的文字,因此请使用对您来说最简单的文字。对于大多数人来说,它要么是 UTC 输出的字符串,要么是以 UTC 为中心的时间码的长整数。

阅读此内容以了解更多背景信息:http://msdn.microsoft.com/en-us/library/bb299886.aspx