System.Web.Script.Serialization.JavaScriptSerializerを使用して.NETDateTimeを保存すると、逆シリアル化されたバージョンは元のバージョンと1時間異なります。なぜ何かアイデアはありますか?
編集:私のワークステーションのタイムゾーンはUTCです。
NUnitテストは以下のとおりです。アサーションは1時間を追加した後にのみ機能することに注意してください。
[Test]
public void JsonSerializationOfDateTimesDoesntWork()
{
var originalDateTime = new DateTime(2011, 6, 20, 6, 5, 4, 3);
const string fileName = "C:\\temp\\testDateTime.json";
using (var writer = new StreamWriter(fileName, false))
{
writer.Write(new JavaScriptSerializer().Serialize(originalDateTime));
}
DateTime newDateTime;
using (var reader = new StreamReader(fileName, false))
{
var readToEnd = reader.ReadToEnd();
newDateTime = new JavaScriptSerializer().Deserialize<DateTime>(readToEnd);
}
Assert.AreEqual(originalDateTime, newDateTime.AddHours(1)); // !!
}