DateTime 上的 Json.NET 反序列化 - 不是正确的时间(-6 小时)

Fet*_*mos 4 c# datetime json converter deserialization

我的应用程序来自客户端和服务器。客户端和服务器交换 json 数据。同一客户端和服务器上的时区(+4)。这个数据类

public class MyData()
{
    public DateTime Start {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

在服务器上,我从数据库 MS SQL 中选择数据并提供给客户端。当我对客户端数据字段反序列化时,Start 偏移了 -6 小时。我怎样才能得到正确的时间?我可以使用 JsonSerializerSettings 在客户端上获得正确的时间吗?我试过

var jsonSerializerSettings = new JsonSerializerSettings()
{
    DateFormatHandling = DateFormatHandling.MicrosoftDateFormat, 
    DateParseHandling = DateParseHandling.DateTimeOffset, 
    DateTimeZoneHandling = DateTimeZoneHandling.Local
};
var result = JsonConvert.DeserializeObject<MyData>(content,  jsonSerializerSettings);
Run Code Online (Sandbox Code Playgroud)

但它给出了+3的偏移量。我需要偏移+6。

Zah*_*med 5

序列化将日期时间转换为 UTC。在反序列化时,您需要将其转换为本地时间

尝试这样的事情:

var dateWithLocalTimeZone = myDate.ToLocalTime(); 
Run Code Online (Sandbox Code Playgroud)