序列化和反序列化DateTime字符串不能在UTC中工作

时间:2014-11-21 02:30:32

标签: c# serialization deserialization

为什么以下操作失败,我该如何解决?

        DateTime now = DateTime.UtcNow;
        string foo = now.ToString("O", CultureInfo.InvariantCulture);
        DateTime bar = DateTime.ParseExact(foo, "O", CultureInfo.InvariantCulture);
        Assert.AreEqual(now, bar);

2 个答案:

答案 0 :(得分:1)

你需要返回时间

DateTime bar = DateTime.ParseExact(foo, "O", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);

更多详情,请参阅DateTimeStyles

答案 1 :(得分:-1)

请检查您是否可以在转换时给予Kind属性。我想第二个日期将转换为本地,而第一个日期是UTC。