这很简单。我有一个字符串
string s = "/Date(1474408920000)/"
我想把它转换成日期:
DateTime date = JsonConvert.DeserializeObject<DateTime>(s);
但我收到错误:
“解析评论时出错。预计:*,得到D.路径'',第1行,第1位。”
这里发生了什么?
感谢您的帮助!
答案 0 :(得分:1)
您的json字符串无效,但可以通过"
string s = @"""/Date(1474408920000)/""";
现在DateTime date = JsonConvert.DeserializeObject<DateTime>(s);
可以使用
答案 1 :(得分:0)
var LogDate = new DateTime(2016, 9, 20, 22, 2, 0, DateTimeKind.Utc);
string JsonDate = JsonConvert.SerializeObject(LogDate, new JsonSerializerSettings {
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
});
Console.WriteLine(JsonDate);
Console.ReadLine();
此代码的输出为您提供了正确的JSON日期格式:
"\/Date(1474408920000)\/"
所以你的字符串应该是这样的:
string s = "\"\\/Date(1474408920000)\\/\"";
答案 2 :(得分:0)
尝试使用以下代码将DateTime obj序列化为JSON。
var dateTime = DateTime.Now;
var jsonDate = Newtonsoft.Json.JsonConvert.SerializeObject(dateTime,
new Newtonsoft.Json.JsonSerializerSettings() {
DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat,
DateParseHandling = Newtonsoft.Json.DateParseHandling.DateTime });
jsonDate
会保留此值"\"\\/Date(1474408920000)\\/\""
或此格式的内容
现在使用下面的代码反序列化你的json日期字符串。
var dateObj = Newtonsoft.Json.JsonConvert.DeserializeObject<DateTime>(dateString,
new Newtonsoft.Json.JsonSerializerSettings() {
DateParseHandling = Newtonsoft.Json.DateParseHandling.DateTime,
DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat });