C# RestSharp连接到WebApi-日期时区问题

C# RestSharp连接到WebApi-日期时区问题,c#,asp.net-web-api,asp.net-web-api2,restsharp,C#,Asp.net Web Api,Asp.net Web Api2,Restsharp,在以下通信之间,对象中的Datetime属性存在问题: 站点#1使用RestSharp 和使用WebApi的站点#2 第1版 场地#1 结果: 现场#1我发送2018年1月1日凌晨12:00 现场#2我收到2018年1月1日凌晨12:00 当站点#1请求对象时,我现在收到:2017年12月31日晚上11:00 第2版 我尝试在站点1上使用不同的发送方式 结果: 现场#1我发送2018年1月1日凌晨12:00 现场#2我收到2017年12月31日晚上11:00 但如果我更正站点2数据库中

在以下通信之间,对象中的Datetime属性存在问题:

  • 站点#1使用RestSharp
  • 使用WebApi的站点#2
第1版

场地#1

结果:

  • 现场#1我发送2018年1月1日凌晨12:00
  • 现场#2我收到2018年1月1日凌晨12:00
  • 当站点#1请求对象时,我现在收到:2017年12月31日晚上11:00
第2版 我尝试在站点1上使用不同的发送方式

结果:

  • 现场#1我发送2018年1月1日凌晨12:00
  • 现场#2我收到2017年12月31日晚上11:00
  • 但如果我更正站点2数据库中的值,那么该值将正确地从站点2发送回站点1(基本上与版本1相反)

我甚至在同一台机器、同一文化、同一时区中进行此测试,但我当然希望找到一个在不同时区的机器中工作的解决方案。

使用版本1:我能够在站点1上解决此问题

在接收部分:

 /************************************************/
 // TRY #1 - OLD
 //var tempData = client.Execute<T>(request).Data;
 /************************************************/
 // TRY #2 - NEW
 var response = client.Execute(request);
 var tempData = JsonConvert.DeserializeObject<T>(response.Content);
 /************************************************/
/************************************************/
//试试#1岁
//var tempData=client.Execute(request.Data);
/************************************************/
//试试#2-新的
var response=client.Execute(请求);
var tempData=JsonConvert.DeserializeObject(response.Content);
/************************************************/

现在,我发送/保存/获取相同的日期时间。

您需要共享将数据保存到site2数据库的代码。另外,请告诉我们您是如何在site1上填充
模型的
?site1和site2上的序列化程序设置是否相同(时区处理)。另外,您是否可以检查site1上序列化后日期的实际值?
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings =
     new JsonSerializerSettings
         {
              DateFormatHandling = DateFormatHandling.IsoDateFormat,
              DateTimeZoneHandling = DateTimeZoneHandling.Utc,
         };
request.AddJsonBody(model);
 /************************************************/
 // TRY #1 - OLD
 //var tempData = client.Execute<T>(request).Data;
 /************************************************/
 // TRY #2 - NEW
 var response = client.Execute(request);
 var tempData = JsonConvert.DeserializeObject<T>(response.Content);
 /************************************************/