Chrome 为什么日期区域设置“en-CA”返回M/d/yyyy而不是yyyy-MM-dd?

qco9c6ql  于 2023-02-27  发布在  Go
关注(0)|答案(1)|浏览(131)

我有一个JavaScript代码,它以en-CA format显示当前日期。

date = new Date();
console.log(date.toLocaleDateString('en-CA'));

以前en-CA区域设置将日期格式设置为yyyy-MM-dd(2023-02-24)。然而,到今天为止,这些日期突然开始显示为M/d/yyyy(2/24/2023),而我没有对代码做任何更改。我在两台运行Chrome、Firefox和Edge的Windows 10和11计算机上重现了这个问题。
为什么en-CA环境开始将日期格式化为M/d/yyyy而不是yyyy-MM-dd

ekqde3dh

ekqde3dh1#

显然,en-CA在Chrome 110和Firefox 110中发生了变化。
.toLocaleDateString('en-CA')的确切格式不可移植,在较新的浏览器中会中断!最近在ICU 72浏览器(Chrome 110和Firefox 110 beta)中,它从yyyy-MM-dd更改为M/d/yyyy。请不要对区域设置的特定格式做出假设。请使用基于.toISOString()的答案之一

  • 安德斯·卡西欧格 *

节点v19.1.0的a GitHub Issue中也注明了这一点。
Node〉= v19.1.0附带了更新版本的ICU(i18 n库),这就是为什么会有区别。
没有错误,它按预期工作。

  • 布努德赫伊斯 *

相关问题