繁体   English   中英

json字符串中的日期时间将转换为本地时间

[英]Datetime in json string is getting converted to localtime

将json字符串转换为Jobject时,为什么datetime + offset被转换为localtime + offset。

这是代码。

string dataValue = @"{""Time"":""2016-07-15T20:03:41+08:00""}";
JObject json = JObject.Parse(dataValue);
Console.Write(json.ToString());

输出:

{
  "Time": "2016-07-15T17:33:41+05:30"
}

预期产量:

{
  "Time": "2016-07-15T20:03:41+08:00"
}

默认情况下,它将使用当地时间,但是您可以覆盖默认设置:

var dataValue = @"{""Time"":""2016-07-15T20:03:41+08:00""}";

var jsonSerializerSettings = new JsonSerializerSettings
{
    DateTimeZoneHandling = DateTimeZoneHandling.Utc
};

var json = JsonConvert.DeserializeObject<JObject>(dataValue, jsonSerializerSettings);

如果您不关心将日期转换为DateTime类型,可以告诉Json.NET忽略日期并将值解析为字符串

var dataValue = @"{""Time"":""2016-07-15T20:03:41+08:00""}";

var jsonSerializerSettings = new JsonSerializerSettings
{
    DateParseHandling = DateParseHandling.None
};

var json = JsonConvert.DeserializeObject<JObject>(dataValue, jsonSerializerSettings)

这样,它将完全保持您的输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM