次のコードでオブジェクトをデシリアライズしようとしていますが、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;
}