什么是“正确的”JSON日期格式?

2022-08-29 22:01:10

我见过很多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

哪一个是正确的?还是最好的?这有什么标准吗?


答案 1

JSON本身没有指定日期应该如何表示,但JavaScript会。

您应该使用 DatetoJSON 方法发出的格式:

2012-04-23T18:25:43.511Z

原因如下:

  1. 它是人类可读的,但也简洁

  2. 它正确排序

  3. 它包括小数秒,可以帮助重新建立时间顺序

  4. 符合 ISO 8601 标准

  5. ISO 8601在国际上已经确立了十多年

  6. ISO 8601 已获得 W3CRFC3339XKCD 的认可

话虽如此,每个日期库都可以理解“自1970年以来的毫秒”。因此,为了便于携带,ThiefMaster是对的。


答案 2

JSON 对日期一无所知。.NET所做的是一个非标准的黑客/扩展。

我会使用一种可以很容易地转换为JavaScript中对象的格式,即可以传递给新的Date(...)的格式。最简单,也可能是最便携的格式是自1970年以来包含毫秒的时间戳。Date