JavaScript使用本地时区和法定时间偏移转换日期

JavaScript使用本地时区和法定时间偏移转换日期,javascript,date,datetime,Javascript,Date,Datetime,我正在进行UTC日期的转换。 从JSON文件内的服务器接收的日期格式具有以下格式: "OpenDate":"2015-10-26T08:00:00Z" 我使用以下功能转换日期: var myDate = myJson.OpenDate.toLocaleString(); 问题发生在10月25日之后,即法定时间变更后。10月25日之后,我的约会提前了一个小时,这是不应该的。那么,我怎样才能及时考虑到这些变化呢?如果约会显示UTC上午8点,则时区应始终为上午9点,即使法定时间发生变化。符合ES5

我正在进行UTC日期的转换。 从JSON文件内的服务器接收的日期格式具有以下格式:

"OpenDate":"2015-10-26T08:00:00Z"
我使用以下功能转换日期:

var myDate = myJson.OpenDate.toLocaleString();

问题发生在10月25日之后,即法定时间变更后。10月25日之后,我的约会提前了一个小时,这是不应该的。那么,我怎样才能及时考虑到这些变化呢?如果约会显示UTC上午8点,则时区应始终为上午9点,即使法定时间发生变化。

符合ES5标准的浏览器将正确解析日期和时间字符串格式,但并非所有使用的浏览器都符合ES5标准,因此将返回NaN(例如IE 8)。对于ES5浏览器,您应该将其解析为:
newdate(string)
。对于其余部分,您应该自己解析它。本地时间的1小时差异可能是由于过渡到夏令时,但不会影响内部时间值,即UTC,不受夏令时的影响。问题在于转换。此时转换是正确的,但toLocalString()返回夏令时。这是错误的,因为规范依赖于实现,所以无论开发人员认为什么都是好主意,而且在不同浏览器之间并不一致。如果你想要一种特定的格式,你必须使用各种方法来获取值并写出它们