編集:解決済み、重複: DateTime値の逆シリアル化時のタイムゾーン変換を防止
2000年9月30日を逆シリアル化しようとしたときに、奇妙なバグに遭遇しました。
2000-09-30T00:00:00 + 11:00は、日付を29/09/200011:00:00PMに変換します。
コンバージョンで1日を失うのを防ぐにはどうすればよいですか。
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
}
}