You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome v78(Ubuntu19.10)中Web应用de-CH日期本地化失效问题

解决Chrome 78在Ubuntu 19.10下de-CH日期本地化异常的问题

我之前在Ubuntu环境下调试Chrome的Intl API时也碰到过类似的locale识别问题,结合你的场景,给你几个针对性的排查和解决方法:

1. 强制Chrome以指定语言环境启动

Chrome在部分Ubuntu新版本中会出现系统locale读取异常的情况,尤其是78这个版本有过相关的兼容性反馈。你可以先关闭所有Chrome窗口,然后在终端执行以下命令启动Chrome:

google-chrome --lang=de-CH

启动后再测试你的日期格式化代码,如果正常显示dd.mm.yyyy格式,说明问题出在Chrome没有正确加载系统locale。你可以把这个启动参数添加到Chrome的快捷方式中(编辑桌面快捷方式的Exec行,在末尾加上 --lang=de-CH),避免每次手动输入。

2. 调整Chrome内置语言优先级

有时候Chrome的内置语言设置会覆盖系统locale:

  • 打开Chrome设置 → 拉到最底部点击「高级」→ 找到「语言」选项
  • 添加「瑞士德语(Schweizer Hochdeutsch)」,并拖动到语言列表的最顶部
  • 勾选「以此语言显示Google界面」(这个设置会间接影响Intl API的locale优先级)
    重启Chrome后再测试日期格式化效果。

3. 手动指定日期格式选项(兜底方案)

如果上面的方法都无法解决,你可以绕过系统locale的自动识别,直接在toLocaleDateString中明确指定格式规则,确保输出瑞士德语标准的日期格式:

new Date().toLocaleDateString('de-CH', {
  year: 'numeric',
  month: '2-digit',
  day: '2-digit'
});

这个配置会强制输出dd.mm.yyyy格式,不受环境locale的影响,适合需要稳定输出的场景。

4. 验证并修复系统locale设置

虽然你已经添加了locales,但可能LC_TIME(负责日期时间格式的locale)没有正确设置:

  • 在终端执行locale命令,查看输出中的LC_TIME值是否为de_CH.UTF-8
  • 如果不是,执行以下命令更新系统locale:
sudo update-locale LC_TIME=de_CH.UTF-8

重启系统后再打开Chrome测试,确保系统locale的修改全局生效。

内容的提问来源于stack exchange,提问作者croraf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:39:52