在Date.toLocaleString()中,语言环境“ ja-JP”不能以2位数格式显示小时吗?

时间:2019-05-22 02:24:58

标签: javascript datetime

使用语言环境“ en-US”时不会发生此行为。

此外,无论小时设置为“两位数”还是“数字”,
对于“ ja-JP”和“ en-US”语言环境,输出保持不变。

这是一个错误吗?是否有解决办法以这种格式以2位数字显示小时?

  

yyyy / MM / dd HH:mm:ss

function showDate() {
    var date = new Date('2019-05-22T00:37:36.37Z');

    var options = { year: 'numeric', day: '2-digit', month: '2-digit', 
                    hour: '2-digit', minute: '2-digit', second: '2-digit',
                    hour12: false };

    document.querySelector("#ja-jp").innerHTML = date.toLocaleString('ja-JP', options);
    document.querySelector("#en-us").innerHTML = date.toLocaleString('en-US', options);
}
window.onload = showDate;
<div id="ja-jp"></div>
<div id="en-us"></div>

2 个答案:

答案 0 :(得分:0)

不确定是否可以帮到您,请查看http://phrogz.net/JS/FormatDateTime_JS.txt

在JS中格式化日期的一种非常不错的方法。

答案 1 :(得分:0)

我不太喜欢这种解决方法,因此我不会接受这个答案。
但是既然可以了,我就把它放在这里。

function formatDate(date) {
    var year = date.getFullYear();
    var month = ("0" + (date.getMonth() + 1)).slice(-2);
    var day = ("0" + date.getDate()).slice(-2);

    var hour = ("0" + date.getHours()).slice(-2);
    var minute = ("0" + date.getMinutes()).slice(-2);
    var second = ("0" + date.getSeconds()).slice(-2);

    return year + "/" + month + "/" + day + " " + hour + ":" + minute + ":" + second;
}

参考link