编辑:已解决,重复: 防止对 DateTime 值的反序列化进行时区转换
我在尝试反序列化 2000 年 9 月 30 日时遇到了一个奇怪的错误。
2000-09-30T00:00:00+11:00 将日期变为 29/09/2000 11:00:00 PM。
如何防止它在转换中损失一天:
public class Data
{
[XmlArray("Times")]
[XmlArrayItem("Time")]
public List<DateTime> Times { get; set; }
public void Test()
{
XmlReader xr = XmlReader.Create(new StringReader(@"<Data><Times><Time>2000-09-30T00:00:00+11:00</Time><Time>1900-01-01T06:00:00</Time></Times></Data>"));
XmlSerializer ser = new XmlSerializer(typeof(Data));
Data data = (Data)ser.Deserialize(xr);
// hover over data and see date is the 29th
}
}