在UTC中调用toLocaleString()

时间:2017-03-22 15:29:13

标签: javascript

我的变种d类型为Date,价值为'2017-05-01T01:00:00.000Z'

我的时区是UTC-4。

当我调用时:

 d.toLocaleString("en-US", { month: "short" });

我得到Apr,因为日期是2017年4月30日2100h UTC-4,我的Javascript正在运行。

是否有一种简单的方法可以让toLocaleString根据UTC的等效值来处理日期实例?

2 个答案:

答案 0 :(得分:3)

您可以specify a parameter timeZone,它定义格式化日期时使用的目标时区:

var date = new Date('2017-05-01T01:00:00.000Z');

console.log(date.toLocaleString("en-US", { month: "short", timeZone: 'America/New_York' }));
  // "Apr"

console.log(date.toLocaleString("en-US", { month: "short", timeZone: 'UTC' }));
  // "May"

答案 1 :(得分:0)

// Adjust date to UTC 0
d = new Date(d.valueOf() + d.getTimezoneOffset() * 60000);
d.toLocaleString("en-US", { month: "short" })

更新 @Timo's answer更好。