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

Ubuntu 22.04下en_US locale环境中修改一周首日为周一的方法咨询

Ubuntu 22.04下en_US locale环境中修改一周首日为周一的方法咨询

Hey Martin, 咱们一步步拆解你的问题,帮你搞定这个locale设置~

先明确几个字段的作用

  • abday 和 day:这俩只是定义一周七天的名称顺序,和“一周首日是哪一天”完全不相关!要是你乱改它们的顺序,只会导致日期显示混乱(比如周一被显示成Sunday),绝对别这么操作。
  • week 字段:格式是 week <每周天数>;<基准日期>;<首日>,第三个数字才是控制一周首日的核心:
    • 0 代表周日(Sunday)
    • 1 代表周一(Monday)
      你当前看到的 week 7;19971130;1 其实已经是周一为首日的配置了——如果你的系统实际还是显示周日为首日,大概率是当前生效的locale不是这个文件对应的,或者有其他配置覆盖了它。

正确的修改姿势:别碰系统默认文件,自定义locale才靠谱

直接修改系统自带的 /usr/share/i18n/locales/en_US 是不推荐的,因为系统更新时这个文件会被覆盖,你的修改会直接丢失。正确做法是创建自定义locale:

  1. 先把系统的en_US locale文件复制到你的用户目录,方便修改:
    cp /usr/share/i18n/locales/en_US ~/en_US_monday
    
  2. 编辑这个自定义文件,找到LC_TIME区块里的week行,把第三个数字改成1(如果原来不是的话),最终看起来是这样:
    week 7;19971130;1
    
  3. 生成这个自定义locale(指定UTF-8字符集):
    localedef -i ~/en_US_monday -f UTF-8 en_US.UTF-8@monday
    
  4. 把生成的locale文件安装到系统目录(需要sudo权限):
    sudo cp /usr/lib/locale/en_US.UTF-8@monday /usr/lib/locale/
    
  5. 测试或设置默认:
    • 临时测试:执行 LC_TIME=en_US.UTF-8@monday date +%A 验证效果
    • 设置为系统默认:编辑 /etc/default/locale 文件,把LC_TIME改成 en_US.UTF-8@monday,然后重启系统或重新登录生效。

额外小提示

如果你只是想让某个应用(比如日历、办公软件)显示周一为首日,很多应用本身就有单独的设置项,不用折腾系统locale,先去应用的设置里找找看,可能更省心~

备注:内容来源于stack exchange,提问作者Martin Zeltin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 12:52:47