“正确”的JSON日期格式
我已经看到JSON日期格式有很多不同的标准:
""/Date(1335205592410)/"" .NET JavaScriptSerializer
""/Date(1335205592410-0500)/"" .NET DataContractJsonSerializer
"2012-04-23T18:25:43.511Z" JavaScript built-in JSON object
"2012-04-21T18:25:43-05:00" ISO 8601
哪一个是正确的? 还是最好? 这有什么标准吗?
JSON本身并没有指定如何表示日期,但是JavaScript可以。
您应该使用Date
的toJSON
方法发出的格式:
2012-04-23T18:25:43.511Z
原因如下:
它是人类可读的,但也简洁
它排序正确
它包括小数秒,可以帮助重建年表
它符合ISO 8601
ISO 8601在国际上已有十多年的历史
ISO 8601获得W3C,RFC3339和XKCD的认可
这就是说 ,每个编写的日期库可以理解“1970年以来的毫秒”。 所以为了便于携带,ThiefMaster是正确的。
JSON不知道有关日期的任何信息。 .NET所做的是一种非标准的破解/扩展。
我将使用一种格式,可以很容易地转换为JavaScript中的Date
对象,即可以传递给new Date(...)
的Date
对象。 最简单也是最便携的格式是自1970年以来包含毫秒的时间戳。
没有正确的格式 ; JSON规范没有规定交换日期的格式,这就是为什么有很多不同的方式来做到这一点。
最好的格式可以用ISO 8601格式表示 (参见维基百科); 它是一种众所周知且广泛使用的格式,可以跨多种不同语言进行处理,因此非常适合于互操作性。 例如,如果您可以控制生成的json,则可以将数据以json格式提供给其他系统,选择8601作为日期交换格式是个不错的选择。
例如,如果您无法控制生成的json,则您是来自多个不同现有系统的json的消费者,处理此问题的最佳方法是使用日期解析实用程序函数来处理预期的不同格式。
链接地址: http://www.djcxy.com/p/1265.html