1

我收到一个 JSON DateTime 值,如下所示:“/Date(1313438502992)/”

如何使用 Windows.Data.Json 库将其转换为 C# 中正确的 DateTime 值?

使用以下代码会导致报告不正确的 DateTime 值:

string dateValue = value.GetString();
//we get a value like "/Date(1313438502992)/"

dateValue = dateValue.Replace("/Date(", "");
dateValue = dateValue.Replace(")/", "");

var PublishDate = new System.DateTime(Convert.ToInt64(dateValue));

不确定 JSON 编码器和 C# DateTime 对象是否使用相同的时代概念。任何指导将不胜感激。

4

1 回答 1

1

JSON 值应该是自 1970 年 1 月 1 日 UTC 以来的毫秒数。如果它给您预期的结果,请尝试以下代码:

var match = Regex.Match(dateValue, @"/Date\((?<millisecs>-?\d*)\)/");
var millisecs = Convert.ToInt64(match.Groups["millisecs"].Value);
var date = new DateTime(1970, 1, 1).AddMilliseconds(millisecs);
于 2013-05-05T05:04:48.310 回答