为什么 IE/FF 和 Chrome javascript 引擎在没有时区指示符的情况下如何解释这种日期格式(YYYY-MM-DDTHH:mm:ss.fff)有所不同?
new Date("2015-02-18T15:43:57.803").getUTCHours()
UTC 时间
铬: 15
IE11/FF: 21
我不明白这一点 - 是不是因为 Chrome 假定它是本地的,而 IE/FF 假定它是 UTC?这似乎是一个 Chrome 错误。
有趣的是 - 在字符串末尾附加一个“Z”告诉 Chrome 和 IE/FF 时间是 UTC,他们可以同意。有没有其他人注意到这个 javascript 实现的差异Date
?
new Date("2015-02-18T15:43:57.803Z").getUTCHours()
UTC 时间
铬: 15
IE11/FF: 15
最终 - 这是ASP.NET Web API 的开箱即用序列化程序的结果,我认为它使用 JSON.NET,但现在似乎是 JSON.NET 使用的内部IsoDateTimeConverter
。
检查GlobalConfiguration.Configuration.Formatters.JsonFormatter
告诉我我们正在使用JsonMediaTypeFormatter
. Web API 是否没有使用开箱即用的 JSON.NET 序列化程序?
这对 Web API 人员来说是一个福音——至少在 ASP.NET MVC 中,我们通过JavascriptSerializer