【问题标题】:Javascript date toLocaleString ignores localeJavascript date toLocaleString 忽略语言环境
【发布时间】:2022-01-07 23:46:12
【问题描述】:

我的系统和浏览器都使用 en_GB 作为语言环境。

browser

system

当我在浏览器控制台中运行 (new Date()).toLocaleString() 时,我得到“12/1/2021, 1:56:32 PM”又名 en_US 格式。但是,如果我通过 Chromium Dev Tools Sensors 选项卡将语言环境设置为 en_GB 并重新加载页面,该函数会返回“01/12/2021, 14:05:02”,即正确的 en_GB 格式。

Overriding locale with Dev Tools

所以我的问题是这是否是我的系统/浏览器的问题。如果我的配置不是问题,那么为什么该开发工具功能可以解决问题?它究竟是如何改变全局 javascript 值的?为什么浏览器不根据我的默认语言自动设置这些值?

我知道一些变通方法,例如手动将navigator.language 作为参数传递给toLocaleString 函数,或者使用像moment 或dayjs 这样的库来管理我的日期和格式,但这只是关于@987654327 不可预测的行为@ 如上所述。

谢谢。

【问题讨论】:

    标签: javascript browser locale


    【解决方案1】:

    原来我的.bashrc 中有export LANG=en_US.utf8。由于它显然是在我的系统上启动任何程序之前获取的,因此浏览器使用 en_US 而不是我的实际系统语言。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 2020-03-29
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      相关资源
      最近更新 更多