您要发送的查询字符串参数值
2014-04-01T00:00:00Z是UTC时间。因此,相同的内容将根据您的本地时钟转换为时间,如果您调用
ToUniversalTime(),它将转换回UTC。
那么,到底是什么问题?如果问题是如果作为查询字符串发送而不是在请求正文中发送时为什么会发生这种情况,那么该问题的答案是ASP.NET Web API使用
模型绑定 将URI路径,查询字符串等 绑定 ,而主体使用 参数绑定
。对于后者,它使用媒体格式化程序。如果发送JSON,则使用JSON媒体格式化程序,它基于JSON.NET。
由于您已指定
DateTimeZoneHandling.Utc,因此它将使用该设置,并获得所需的日期时间类型。顺便说一句,如果将此设置更改为
DateTimeZoneHandling.Local,那么您将看到与模型绑定相同的行为。



