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

C# DateTime上的Json.NET反序列化-时间不正确(-6小时),c#,json,datetime,deserialization,converter,C#,Json,Datetime,Deserialization,Converter,我的应用程序来自客户端和服务器。客户端和服务器交换json数据。同一客户端和服务器(+4)上的时区。此数据类 public class MyData() { public DateTime Start {get;set;} } 在服务器上,我从数据库MS SQL中选择数据,并将其提供给客户端。当我在客户端数据字段上反序列化时,开始偏移量为-6小时。我怎样才能知道正确的时间?我可以使用JsonSerializerSettings在客户端上获得正确的时间吗?我试过了 var jsonSer

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

public class MyData()
{
    public DateTime Start {get;set;}
}
在服务器上,我从数据库MS SQL中选择数据,并将其提供给客户端。当我在客户端数据字段上反序列化时,开始偏移量为-6小时。我怎样才能知道正确的时间?我可以使用JsonSerializerSettings在客户端上获得正确的时间吗?我试过了

var jsonSerializerSettings = new JsonSerializerSettings()
{
    DateFormatHandling = DateFormatHandling.MicrosoftDateFormat, 
    DateParseHandling = DateParseHandling.DateTimeOffset, 
    DateTimeZoneHandling = DateTimeZoneHandling.Local
};
var result = JsonConvert.DeserializeObject<MyData>(content,  jsonSerializerSettings);
var jsonSerializerSettings=new jsonSerializerSettings()
{
DateFormatHandling=DateFormatHandling.MicrosoftDateFormat,
DateParseHandling=DateParseHandling.DateTimeOffset,
DateTimeZoneHandling=DateTimeZoneHandling.Local
};
var result=JsonConvert.DeserializeObject(内容,jsonSerializerSettings);

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

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

试着这样做:

var dateWithLocalTimeZone = myDate.ToLocalTime(); 

我试过了,但它给出了+3的偏移量。我需要偏移量+6。启动(在服务器上)-13.00。启动(在客户端)-7.00。开始。ToLocalTime()-10.00sooooooooooooooo太棒了!我在任何地方都找不到这个答案,而且这个答案很简单,很隐蔽。谢谢你指出这一点!:)