.Net中DateTime的大坑
Long story in short:当使用JavaScriptSerializer
去序列化一个DateTime
值的时候,如果这个值的Kind
是unspecified
,则会根据Timezone
去序列化DateTime
。
这就包含了一个隐含的BUG:如果DateTime
做了持久化操作在还原时,比如从String “2013-3-1 12:00:00”中初始化DateTime
的时候,不会有Kind。此时如果在用JavaScriptSerializer
去序列化,则有可能得到的result是“2013-3-1 12:00:00” +- N
顺手吐槽:有源代码就是好,开始就误解Asp.Net MVC3了,原以为Json Response
有啥特别的处理,结果发现只是一句简单的
if (Data != null) {
JavaScriptSerializer serializer = new JavaScriptSerializer();
response.Write(serializer.Serialize(Data));
}