2

我从一个 API 得到这个 - 这个日期与 1983 年 6 月 30 日有关:

[DateOfBirth] => /Date(425775600000+0100)/

那么这是什么数据类型呢?API 文档说它是 DateTime 但我以前没有遇到过这样的情况。我需要能够解码并重新编码成这种格式。

谢谢。

4

3 回答 3

3

正如Havenard所指出的,核心格式是“自 Unix 纪元以来的毫秒数”,时区偏移为一小时。

$ timestamp -u 425775600
425775600 = Wed Jun 29 23:00:00 1983
$

这是一个非标准程序,但它提供了信息;意思是-u“使用gmtime()”,并且它是 1983 年 6 月 30 日午夜前一小时的事实是由于一小时的时区偏移。

(Unix 纪元是 1970-01-01 00:00:00 +00:00 — UTC 时间 1970 年 1 月 1 日午夜。)

于 2013-05-14T14:57:38.047 回答
2

那是以毫秒为单位的 unix 时间。

自 1970 年 1 月 1 日以来,Unix 时间以秒为单位给出,所以

425775600

映射到

30.06.1983 01:00:00

(由于时区而有偏移)。

使用这样的工具来验证:

http://www.gaijin.at/olsutc.php

于 2013-05-14T14:54:59.327 回答
1

该格式是 Microsoft 在其JavaScriptSerializer用于 ASP.Net 的课程中​​开发的专有格式。你可以在这里这里阅读。

然后你可以阅读一些由此引起的噩梦

这种格式虽然仍受支持,但不再推荐。微软已经远离JavaScriptSerializer了令人敬畏的JsonContractDataSerializer类,现在正在使用Json.Net库。

最初,该库使用 Microsoft 格式作为其默认格式。但这在 4.5 中有所改变。它现在使用 ISO8601 格式的日期。 在这里阅读

事实是 - JSON 没有为日期或时间指定任何特定格式。早期人们有不同的意见,但现在这些意见都围绕着对 ISO8601 的一致支持而得到巩固。具体来说,RFC3339中描述的配置文件是应该使用的标准,例如:

2013-05-14T10:30:00-07:00
于 2013-05-14T17:31:48.177 回答