在Fedora 30上,我目前正在桌面环境中以24小时格式显示日期。我要通过时间同步。但是在CLI上,时间显示为所有用户的Fri 22 Nov 2019 02:47:51 PM EST
。
我想设置使用24小时时钟的时间格式。timedatectl
设置和重新日志记录对用户没有任何影响.
发布于 2019-11-23 13:40:00
如果在命令行上使用date
命令,并返回类似于Fri 22 Nov 2019 02:47:51 PM EST
的内容,则意味着您的地区设置当前设置为指定12小时时间格式的区域设置。
键入locale
以查看当前区域设置。基本上,所有地区设置都只是环境变量,但它们之间存在一些依赖关系。
区域设置的逻辑如下:
LANG
变量将定义所有LC_*
区域设置类别的默认区域设置,除非对特定类别有更特定的设置。LC_CTYPE
、用于排序顺序的LC_COLLATE
以及用于表示日期和时间的LC_TIME
。如果存在与区域设置类别名称相对应的环境变量,则它将覆盖LANG
设置的默认设置。LC_ALL
。如果设置了它,它将覆盖所有其他区域设置。它通常用于脚本或类似于export LC_ALL=C
,以确保脚本使用的任何命令的输出将采用POSIX默认的美国英语格式,而不是任何可能使解析输出更加困难的本地化格式。(当然,解析脚本中提供给人类的输出是一种非理想的选择--如果命令具有“脚本友好输出”选项,则应该使用它!)历史上,在RedHat/Fedora上,系统默认的区域设置应该在/etc/sysconfig/i18n
文件中(i18n =国际化,i和n之间有18个字符)。在现代版本中,它应该是一个localectl
命令,您可以使用它来持久地查询和修改区域设置和键盘布局设置。请注意,环境变量设置始终可以用于覆盖系统范围内的区域设置默认值!
如果您使用的是默认的en_US.UTF-8
区域设置,那么en_GB.UTF-8
将是与24小时时间表示最接近的等效值。若要设置它,请使用:
localectl set-locale LC_TIME=en_GB.UTF-8
然后注销&重新登录以使更改在您的会话中生效。
如果使用其他语言环境,请使用localectl list-locales
查看可用的区域设置定义。
如果不确定,可以通过将所需的区域设置指定为date
命令的环境变量来测试输出:
$ LC_TIME=en_GB.UTF-8 date
Sat 23 Nov 15:47:16 EET 2019
$ LC_TIME=en_US.UTF-8 date
Sat 23 Nov 2019 03:47:19 PM EET
https://unix.stackexchange.com/questions/553679
复制相似问题