有谁知道为什么DataContractJsonSerializer将DateTime属性序列化以包含时区?即,我在一个被序列化为JSON的对象上有一个.NET DateTime。它的序列化为1303500600000 + 0000而不是1303500600000。
这意味着当客户端应用程序内的DataContractJsonSerializer对其进行反序列化时,它将被转换为“本地”时间。实际上,日期时间应该与时区无关。
答案 0 :(得分:1)
我遇到了同样的问题。正在开发本地PST的所有内容并推送到服务器EST,这显然会引起一些有趣的问题。我从来没有找到一个很好的解释为什么会这样,但它与DateTime.Kind有关。默认情况下,DateTime上的DateTimeKind是未指定的,Serializer将其转换为“Local”,从而添加时区偏移量。
我最终解决这个问题的方法是将DateTime.Kind设置为UTC:
http://msdn.microsoft.com/en-us/library/shx7s921.aspx
以下是该问题的另一个论坛答案:
如果DateTime.Kind是Utc,序列化程序将排除TimeZone偏移量,您可以自己跟踪所有这些并在服务器和客户端上做出关于日期TimeZone的所需假设。
答案 1 :(得分:0)