C# JsonSerializer似乎忽略了时区偏移
我一直在测试中得到奇怪的结果,直到我决定进行一些心智检查,并惊奇地发现:C# JsonSerializer似乎忽略了时区偏移,c#,.net,C#,.net,我一直在测试中得到奇怪的结果,直到我决定进行一些心智检查,并惊奇地发现: [TestCase("{\"a\":\"2020-11-11T11:11:10Z\"}", "{\"a\":\"2020-11-11T13:11:10+02:00\"}")] public void SanityCheck2(string jsonDateStringA, string j
[TestCase("{\"a\":\"2020-11-11T11:11:10Z\"}", "{\"a\":\"2020-11-11T13:11:10+02:00\"}")]
public void SanityCheck2(string jsonDateStringA, string jsonDateStringB)
{
DateTime schedule1 = JsonSerializer.Deserialize<Temp>(jsonDateStringA).a;
DateTime schedule2 = JsonSerializer.Deserialize<Temp>(jsonDateStringB).a;
Assert.That(schedule1, Is.EqualTo(schedule2));
}
这种说法合理吗?我需要我的模型考虑到提供的时差。
或者我只是做了反序列化错误?使用
DateTimeOffset
而不是DateTime
。您的意思是我应该将模型的字段从public DateTime Start
更改为public DateTimeOffset Start
?阅读此内容以查看差异。TLDR:如果您关心偏移量,请始终使用DateTimeOffset
。是的,更改您的模型。好吧,这可能正好解决了它,尽管我还需要修复其他一些测试。谢谢!
Expected: 2020-11-11 13:11:10
But was: 2020-11-11 11:11:10