我正在尝试使用以下代码对对象进行反序列化,并且我想知道替换 json 日期的正确正则表达式是什么。当我运行以下代码时,正则表达式永远不会被触发。我在 json 字符串中使用标准的 JSON 日期格式。
{
"UniqueId": "1000000003",
"Id": 3,
"ModifyTimestamp": "/Date(1338857699743)/"
}
string json = // see above
string p = @"\\/Date\((\d+)\+\d+\)\\/";
MatchEvaluator matchEvaluator = new MatchEvaluator(convertJsonDateToDateString);
Regex reg = new Regex(p);
json = reg.Replace(json, matchEvaluator);
JavaScriptSerializer serializer = new JavaScriptSerializer();
Student student = serializer.Deserialize<Student>(json) as Student;
public static string convertJsonDateToDateString(Match m) {
string result = string.Empty;
DateTime dt = new DateTime(1970, 1, 1);
dt = dt.AddMilliseconds(long.Parse(m.Groups[1].Value));
dt = dt.ToLocalTime();
result = dt.ToString("yyyy-MM-dd HH:mm:ss");
return result;
}