Изменить: решено, дублировать: Предотвратить преобразование часового пояса о десериализации значения DateTime
Я столкнулся со странной ошибкой при попытке десериализации 30 сентября 2000 года.
2000-09-30T00: 00: 00 + 11: 00 превращает дату в 29.09.2000 23:00:00.
Как я могу предотвратить потерю дня при конверсии:
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
}
}