我已经看到了许多不同的 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 对日期一无所知。 .NET 所做的是非标准的黑客 / 扩展。
我会使用一种格式,可以很容易地转换为 JavaScript 中的Date
对象,即可以传递给new Date(...)
的格式。最简单且可能最便携的格式是自 1970 年以来包含毫秒的时间戳。
没有正确的格式 ; JSON 规范没有指定交换日期的格式,这就是为什么有这么多不同的方法来做到这一点。
最好的格式可以说是ISO 8601 格式的日期 ( 见维基百科 ); 它是一种众所周知且广泛使用的格式,可以跨多种语言处理,非常适合互操作性。例如,如果您可以控制生成的 json,则以 json 格式向其他系统提供数据,选择 8601 作为日期交换格式是一个不错的选择。
例如,如果您无法控制生成的 json,那么您是来自几个不同现有系统的 json 的使用者,处理此问题的最佳方法是使用日期解析实用程序函数来处理预期的不同格式。