使用`toLocaleString`正确格式化Javascript日期

时间:2018-04-11 09:36:29

标签: javascript date time timezone date-formatting

我正在尝试格式化日期' MM / dd / yyyy' (短日期格式)使用javascript toLocaleString的{​​{1}}功能。但是当我改变我的时区时,它没有给出预期的结果。贝娄是我的代码片段

Date

以上代码打印var d1 = new Date(1954, 0, 1); // Fri Jan 01 1954 00:00:00 GMT-0900 (AKST) var options = { year: 'numeric', month: '2-digit', day: '2-digit' }; var shortDate = d1.toLocaleString('en-US', options); console.log(shortDate); 而非预期结果12/31/1953

观察/步骤:

  • 将本地计算机的时区更改为01/01/1954Whitehorse - Canada)。
  • 运行上面的代码段以复制结果。
  • 只会复制Pacific DayLight Time小于year的值(工作时间大于1968

供参考,上传的录音(http://recordit.co/cdWMgWFLKJ

1 个答案:

答案 0 :(得分:0)

本地日期时间功能是从UTC到区域设置日期时间的转换。您需要先更改UTC时间。

所以请使用它。

var d1 = new Date(Date.UTC(1954, 0, 1)); // Fri Jan 01 1954 00:00:00 GMT-0900 (AKST)
var options = {
    year: 'numeric',
    month: '2-digit',
    day: '2-digit'
};
var shortDate = d1.toLocaleString('en-US', options);
console.log(shortDate);