如何找到支持yyyy-mm-dd日期与24小时制时间的locale?
解决Locale日期时间格式问题的实用方案
哈哈,完全懂你的感受!默认的美式/加式日期时间格式确实让人抓狂,尤其是习惯了ISO标准的yyyy-mm-dd和24小时制之后。我来给你几个靠谱的办法,不用换掉整个locale就能搞定这个问题:
方法一:偷懒式快速解决(推荐)
直接用丹麦英语的locale,它默认就采用ISO日期格式和24小时制,完美匹配你的需求,而且其他英语环境的设置(比如数字、货币)也不会乱。
临时生效(仅当前终端会话):
在终端里输入:export LC_TIME="en_DK.UTF-8"输入
date命令验证,应该会输出类似2024-05-20 16:42:15的格式。永久生效(所有终端会话):
编辑你的shell配置文件(比如bash用~/.bashrc,zsh用~/.zshrc),添加一行:export LC_TIME="en_DK.UTF-8"保存后执行
source ~/.bashrc(对应你的shell)让修改立刻生效,或者重启终端就行。
方法二:自定义专属Locale(进阶需求)
如果en_DK的locale还有其他你不满意的地方,可以自己定制一个基于en_CA的locale,只修改日期时间格式:
复制现有en_CA的locale配置文件:
sudo cp /usr/share/i18n/locales/en_CA /usr/share/i18n/locales/en_CA_custom编辑这个自定义文件,找到以下字段并修改:
d_fmt "%Y-%m-%d" # 日期格式 t_fmt "%H:%M:%S" # 时间格式 dt_fmt "%Y-%m-%d %H:%M:%S" # 日期时间组合格式 date_fmt "%Y-%m-%d %H:%M:%S %Z" # 带时区的完整格式生成新的locale:
sudo locale-gen en_CA.UTF-8_custom设置LC_TIME为这个自定义locale:
export LC_TIME="en_CA.UTF-8_custom"同样可以把这行加到shell配置文件里永久生效。
补充说明
第一种方法是最省心的,因为en_DK.UTF-8本身就是英语环境,只是日期时间遵循了ISO标准,完全不用自己折腾配置。而自定义locale适合有特殊需求的场景,比如还要调整其他格式细节。
内容的提问来源于stack exchange,提问作者stone1343
相关产品推荐
相关产品推荐

