无法获取date.toLocaleString()来更改区域设置的时间

时间:2015-04-27 10:55:56

标签: javascript date datetime-format

我试图在JavaScript中输出日期。该页面将由民间在多个时区和语言中使用,我认为最好使用toLocaleString()

我已经尝试过MSDN中的示例,但它不起作用:

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

document.write(date.toLocaleString('en-US', { hour12: false }));
// → "12/19/2012, 19:00:00"

但我得到了

12/20/2012, 03:00:00

我在Linux和Windows上尝试了一些浏览器,但我得到了相同的结果。我有什么明显的遗失吗?

2 个答案:

答案 0 :(得分:2)

toLocaleString方法是关于格式化,它将日期格式化为美国英语格式,它不关心时区,也不关心。

如果你想处理时区,我绝对建议使用像 MomentJS 这样的库,不幸的是,与时间一起工作是一种痛苦的JavaScript(在大多数语言中都是公平的)。但是,如果您想要使用原生JS,那么请查看getTimezoneOffset方法。

答案 1 :(得分:1)

Date.UTC的第四个参数是小时(0到23)所以在你的情况下,如果你位于“零”时区,那么它是03:00:00。 MSDN示例可能是由坐在例如西雅图。