为什么date.toLocalString()返回两种不同的格式?

时间:2019-07-18 11:22:18

标签: javascript

所以我正在使用Date.toLocaleString()来获取特定时区的时间,但是我遇到了一个问题,它在两个不同的操作系统上返回两个不同的日期格式

let currentTimeInSGT = new Date().toLocaleString('SG', {
  timeZone: 'Asia/Singapore',
  hour12: false
})
console.log(currentTimeInSGT)

在Windows上它返回

7/18/2019, 19:19:32

在ubuntu上它返回

18/07/2019, 19:19:32

它们都在chrome上进行了测试,浏览器之间的值也有所不同,firefox和chrome也给出了不同的格式

如何获得一致的日期时间格式?

2 个答案:

答案 0 :(得分:1)

您应该使用sg作为that seems to be the accepted pattern,而不是使用en-SG作为您的语言环境。

在我检查过的所有浏览器上都产生了相同的结果。 (Chrome,Firefox,Edge)

let currentTimeInSGT = new Date().toLocaleString('en-SG', {
  timeZone: 'Asia/Singapore',
  hour12: false
})

console.log(currentTimeInSGT)

答案 1 :(得分:-1)

localeString使用系统设置来确定应以哪种格式返回它,每个标记有locale的方法都将在Javascript中显示此行为。

您可以使用toISOString将日期始终转换为字符串

编辑:没有看到Java脚本标记