我尝试new Date()
获取UTC当地时间,
但现在js无法添加时区偏移量(例如,为中国增加8小时)。
在它正常工作之前。
在博客On the nightmare that is JSON Dates. Plus, JSON.NET and ASP.NET Web API
中答案 0 :(得分:0)
您需要在字符串中包含时区信息。
对于UTC,可以用Z
表示。
new Date("2017-05-10T07:50:16Z").toUTCString()
// Wed, 10 May 2017 07:50:16 GMT
行为的改变反映了标准的变化。
2011, 5th edition(您熟悉并期待的行为)
缺席时区偏移的值为“Z”。
如果没有时区偏移,则将日期时间解释为当地时间。
2016, 7th edition(当前行为)
如果没有时区偏移,则仅日期表单将被解释为UTC时间,日期时间表单将被解释为本地时间。
答案 1 :(得分:0)
更改默认DatetimeConverter
:
IsoDateTimeConverter converter = new IsoDateTimeConverter
{
DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"
};
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(converter);