.Net中DateTime的大坑

Long story in short:当使用JavaScriptSerializer去序列化一个DateTime值的时候,如果这个值的Kindunspecified,则会根据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));
}