javascript - Javascript date toLocaleString 是否考虑 DST?

标签 javascript date timezone

我已经在 UTC 中设置了截止日期,如下所示,我想知道 toLocaleString() 方法在用户的本地计算机上究竟会对其执行什么操作。例如,如果他们处于识别夏令时的时区,它会考虑夏令时吗?或者我是否需要插入额外的代码来检查用户所在的位置,然后修复显示的时间?

http://javascript.about.com/library/bldst.htm

var deadline = new Date('5/1/2013 ' + "16:15" + ' UTC');
alert(deadline.toLocaleString());

最佳答案

一般来说,答案是。 JavaScript 将根据其运行计算机的时区设置,在适当的本地时间表示 UTC 值。这包括 DST 的调整。然而,正如其他人所指出的,细节是特定于实现的。

如果您想要一致的输出,我会使用一个库来格式化您的日期,而不是依赖于默认实现。最好的图书馆(恕我直言)是 moment.js .他们主页上的实例将让您了解它可以做什么。

更新

如果您正在传递要转换为正确本地时间的 UTC 值,并且该时间属于时区规则与当前时区规则不同的时间段 - 那么结果将无效。这很疯狂,但却是真实的——而且是在 ECMA 规范中设计的。阅读 - JavaScript Time Zone is wrong for past Daylight Saving Time transition rules

关于javascript - Javascript date toLocaleString 是否考虑 DST?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2550903/

相关文章:

javascript - Bootstrap 选择菜单 - 添加新选项

单击 javascript 按钮和单击 asp.net 按钮

javascript - 我试图在纯函数中将值移动到父节点

c# 转换时区的扩展方法

Java 时区.setDefault

javascript - protractor.findElement() 是否意味着滚动到该元素?

mysql - 将数据 varchar 转换为日期月份

java - 为什么减去这两次(在 1927 年)会产生奇怪的结果?

r - 如何在数据框的多列中将不同的日期格式转换为单一格式

java - 在 Java 中将本地时间戳转换为 UTC 时间戳