我的变种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的等效值来处理日期实例?
答案 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更好。