我有一个使用 XmlSerializer
序列化/反序列化的类。此类包含一个 DateTime
字段。
序列化时,DateTime
字段由包含 GMT 偏移量的字符串表示,例如 2010-05-05T09:13:45-05:00
。反序列化时,这些时间将转换为执行反序列化的机器的本地时间。
出于不值得解释的原因,我想阻止这种时区转换的发生。序列化发生在野外,存在此类的多个版本。反序列化发生在我控制的服务器上。因此,这似乎最好在反序列化期间处理。
除了实现 IXmlSerializable
并“手动”完成所有反序列化之外,我怎样才能做到这一点?
最佳答案
我所做的,是使用 DateTime.SpecifyKind 方法,如下:
DateTime dateTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Unspecified);
这解决了我的问题,希望对您有所帮助。
关于c# - 防止反序列化 DateTime 值时进行时区转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3188933/