【发布时间】:2015-07-04 12:05:47
【问题描述】:
应用程序正在本地主机上运行。服务器比客户端早一小时!
客户端发送时间:Sat Apr 25 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
请求发送:dateOfArrival: "2015-04-25T04:00:00.000Z"
服务器接收时间:{4/24/2015 11:00:00 PM}
为什么会有一小时的时差,我该如何处理?我猜想这与日光时间和标准时间有关。
当我尝试这段代码时:
string dateStr = "2015-04-25T04:00:00.000Z";
var myDate = DateTime.Parse(dateStr); // it gives me myDate = {4/25/2015 12:00:00 AM}
其实我只对一天的一部分时间感兴趣。在我的数据库中,我将其保存为日期类型。但是因为这个时差,我的日子提前了一天。
我尝试了各种方法来处理问题,但我完全迷失在日期时间转换世界中!即使我迷失在 localhost 应用程序上,我也无法想象在实时服务器上会发生什么。
我认为this Q&A 也提到了类似的问题,但我想不通 如果重要的话:
我的时区:东部时区 (UTC-05:00)
关于 web api odata json 序列化器,from this post 我可以说它不是 this one
这是我的服务器代码:
// PATCH: odata/IncomingStudents(5)
[AcceptVerbs("PATCH", "MERGE")]
public async Task<IHttpActionResult> Patch([FromODataUri] int key, Delta<IncomingStudent> patch)
{
Validate(patch.GetEntity());
var dateOfArrival = patch.GetEntity().DateOfArrival
...
}
客户端是angularjs发送http补丁请求
【问题讨论】:
标签: .net datetime asp.net-web-api2 asp.net-web-api-odata