C# 如何获得.Net XML反序列化以保留DateTimeKind?

C# 如何获得.Net XML反序列化以保留DateTimeKind?,c#,.net,datetime,xml-deserialization,C#,.net,Datetime,Xml Deserialization,我有一个XML字符串,日期如下:2001-01-01T03:40:00Z 注意它如何以Z结尾,以表示UTC 我反序列化如下: using (StringReader stringReader = new StringReader(xmlString)) using (XmlReader xmlReader = XmlReader.Create(stringReader)) obj = (MyObject)sr.ReadObject(xmlReader); 但是,当我转到

我有一个XML字符串,日期如下:2001-01-01T03:40:00Z

注意它如何以Z结尾,以表示UTC

我反序列化如下:

using (StringReader stringReader = new StringReader(xmlString))
    using (XmlReader xmlReader = XmlReader.Create(stringReader))
        obj = (MyObject)sr.ReadObject(xmlReader);

但是,当我转到结果对象中相应的DateTime字段时,Kind字段被设置为“Unspecified”,而不是应该设置的“Utc”。如何解决此错误?

类字段没有setter,因此XmlSerializer无法对其进行设置

许多人建议总是将时间序列化为UTC,然后在需要时调用ToLocalTime


请看。

我们就是这样做的,而且效果很好。数据本身始终保持通用性,任何视图都可以反映系统设置为的任何时区。