我不能终生将我被告知是 ISO 8601(例如'1396949418557')的日期字符串反序列化为 C# DateTime 对象。
我真的很喜欢我读过的关于 Noda Time 的内容,而且我正在使用 JSON.NET。有没有人遇到过这个?
使用野田时间:
Instant instant = Instant.FromMillisecondsSinceUnixEpoch(1396949418557);
它看起来像一个unix时间戳。尝试这个:
var unixEraStart = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var dateTime = unixEraStart.AddMilliseconds(1396949418557);
您的字符串看起来像一个 Javascript 时间戳(自 1970/01/01 以来的毫秒数,实际上是 1000 * unix 时间)。
我从未使用过 nodatime,但看起来该库以自 unix 纪元以来的滴答声定义时间,10,000 个滴答声 = 1 毫秒。因此,如果您对字符串执行 Int64.Parse,然后将其乘以 10,000,您应该能够使用该值构造一个 nodatime 日期对象。