toLocaleDateString和toLocaleString方法不尊重机器时区

时间:2016-05-18 15:11:25

标签: javascript date datetime

我的电脑使用美国地区设置和日期格式以及-8h GMT时区,但我并不完全在美国地区。为什么在通过新日期获取日期时我可以看到时区偏移是正确的,但是当我尝试将其转换为localedateString时,我得到了我真正的本地日期字符串?

var date = new Date();
///here date is (for example)  Mon Jan 15 2001 12:00:00 GMT-0800 (Pacific Standard Time)

var localeString = date.toLocateDateString();
///or date.toLocaleString()

/// localeString here comes in my real locale date format 15.01.2001 г or 15.01.2001 г., 12:00:00 when using toLocaleString()

1 个答案:

答案 0 :(得分:0)

toLocaleString的输出完全取决于实现,并且在当前使用的浏览器中不一致。它不一定尊重系统设置(例如,Chrome不遵守组件顺序的系统设置),ECMA-262也没有要求它这样做。

为获得可靠的结果,请以明确的格式手动格式化输出,例如25 Feb 2017。库可以提供帮助,但如果您只需要一种格式,那么一个简单的函数就足够了。