我调用一个Web服务,该服务返回一个项目,其中一个属性是:
"startDate":"/Date(1398859200000+1100)/"
在我的C#表示中,我有:
public class MyClass
{
public DateTimeOffset StartDate {get; set;}
}
在我的单元测试中,我有以下断言
var expectation =
new DateTimeOffset(2014, 04, 30, 12, 0, 0, new TimeSpan(0, 11, 0, 0));
Assert.That(specialOfferContent.End, Is.EqualTo(expectiation).Within(1).Seconds);
(不确定是否有更好的方法来断言...)
如果使用(不指定DateParseHandling)从JSON反序列化,我得到的结果是:
预计:2014年4月30日12:00:00 +11:00 +/- 00:00:01
但是:04/30/2014 13:00:00 +01:00
或者,如果我将DateParseHandling指定为DateParseHandling.DateTimeOffset
,我会得到:
预计:2014年4月30日12:00:00 +11:00 +/- 00:00:01
但是:04/30/2014 23:00:00 +11:00
我的问题是,我做错了什么? 它忽略了我执行日期的+1100部分
答案 0 :(得分:2)
你的期望基本上是不正确的。
您提供的价值是 04/30/2014 23:00:00 +11:00 - 因为它的UTC 04/30 / 2014T12:00:00 (经Epoch Converter验证),但本地偏移量为+11小时。所以当地时间是晚上11点。
在您的输入中,有两个数据:
区分这两个部分非常重要 - 尤其要理解第一部分不受时区影响。