【发布时间】:2013-03-29 17:33:44
【问题描述】:
我有一个返回日期的服务。奇怪的是,大多数时候它都是这样返回的:/Date(1364227320000)/
但有时它会像这样返回日期/Date(1364050020139-0400)/
当我打开 Visual Studio 调试器时,每个日期看起来都一样(减去时间差异)
造成这种差异的原因是什么?
【问题讨论】:
标签: javascript .net json wcf
我有一个返回日期的服务。奇怪的是,大多数时候它都是这样返回的:/Date(1364227320000)/
但有时它会像这样返回日期/Date(1364050020139-0400)/
当我打开 Visual Studio 调试器时,每个日期看起来都一样(减去时间差异)
造成这种差异的原因是什么?
【问题讨论】:
标签: javascript .net json wcf
这是在System.Runtime.Serialization.Json.JsonWriterDelegator.WriteDateTimeInDefaultFormat() 中处理的。如果DateTimeKind 是Unspecified 或Local,它会将 UtcOffset 添加到末尾(-400 部分,表示 Utc - 4 小时)。
【讨论】:
这取决于DateTime 对象的种类(即其Kind 属性的值)。如果您返回 DateTime 和 DateTimeKind.Utc,则不会有偏移。如果日期时间类型为Local 或Unspecified,则会写出偏移量。
您可以在"Stand-Alone JSON Serialization" page on MSDN 的“DateTime Wire Format”部分找到有关该格式的更多信息。
【讨论】: