【发布时间】:2011-09-09 10:53:39
【问题描述】:
我使用 DataContractJsonSerializer 序列化了一个包含 DateTimeOffset 数据类型的当前日期的对象。这是我得到的输出:
<root type="object">
<blah type="object">
<DateTime>/Date(1315565372414)/</DateTime>
<OffsetMinutes type="number">300</OffsetMinutes>
</blah>
</root>
我如何理解这一点?如何将数字 1315565372414 转换回日期? 我的客户正在 python 中接收这个东西,并希望将其更改回最新状态。 我不确定这些是自纪元以来的滴答声还是秒数,但它们都产生了不正确的结果。 以下是我在 .net 中将其转换回来的代码,但结果很荒谬
Console.WriteLine(new DateTime(1970, 1, 1).AddTicks(1315565372414));
如果我尝试 AddSeconds;它会抛出值超出范围异常。
这是我序列化日期的方式:
[DataContract]
public class Test
{
[DataMember]
public DateTimeOffset blah { get; set; }
}
var serializer = new DataContractJsonSerializer(typeof(Test));
var writer = new StringWriter();
serializer.WriteObject(new XmlTextWriter(writer), new Test() { blah = DateTimeOffset.Now });
string output = writer.ToString();
Console.WriteLine(output);
【问题讨论】: