将 JSON 日期反序列化为 C# DateTime 时,我们遇到了一个棘手的问题。
代码是:
JavaScriptSerializer serializer = new JavaScriptSerializer();
jsonTrechos = jsonTrechos.Replace("/Date(", "\\/Date(").Replace(")/", ")\\/");
Trecho[] model = serializer.Deserialize<Trecho[]>(jsonTrechos);
The jsonTrechos
是 json2.js 的字符串JSON.stringify();
.
问题是:反序列化有效,但 Trechos 对象的所有日期都添加了 2 小时。
我的时区是巴西 (UTC -3),我们实行夏令时(因此我们目前使用 UTC -2),如果有什么关系的话。我想也许本地化和时区可能在这方面发挥了作用,如果确实如此,我不知道如何解决它。
这记录在MSDN http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx:
日期对象,用 JSON 表示为
“/日期(刻度数)/”。这
刻度数是正数或
负长值表示
滴答数(毫秒)
自午夜以来已过去01
世界标准时间 1970 年 1 月。
尝试打电话DateTime.ToLocalTime()
看看您是否得到了正确的日期。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)