我有这个网址
http://example.com/api/record/getall?startdate=1994-11-05T17:15:30Z
和这个webapi端点
[ActionName("GetAll")]
public object GetAll(DateTime startDate)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是startDate收到反序列化的字符串作为本地时间," 11/5/1994 9:15:30 AM "而不是停留在UTC时间,这就是我想要的" 11/5/1994 5:15:下午30点 ".
我正在使用VS2012 update2,最新的Json.net nuget包.但是,如果我在一个单独的控制台应用程序中使用json.net进行测试,则相同的字符串" 1994-11-05T17:15:30Z "能够正确地反序列化为" 11/5/1994 5:15:30 PM ".
谁知道这里有什么问题?
我正在向MVC控制器发布一个对象.该对象包含一个名为StartDt的字段,在客户端上它是本地时间的javascript Date对象.
当我在对象上调用JSON.stringify并使用jQuery的ajax方法将其POST到服务器时,我可以在Firebug中看到发送到服务器的是一个ISO字符串,如"1900-12-31T13:00:00.000Z",我相信应该是UTC格式的本地时间.
当我查看控制器中的DateTime字段时,它看起来像是回到本地时间而不是UTC.我怎样才能解决这个问题?
我想存储来自客户端的日期的UTC版本.