首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为所有用户设置时钟为24小时格式

为所有用户设置时钟为24小时格式
EN

Unix & Linux用户
提问于 2019-11-22 19:51:25
回答 1查看 41.4K关注 0票数 5

在Fedora 30上,我目前正在桌面环境中以24小时格式显示日期。我要通过时间同步。但是在CLI上,时间显示为所有用户的Fri 22 Nov 2019 02:47:51 PM EST

我想设置使用24小时时钟的时间格式。timedatectl设置和重新日志记录对用户没有任何影响.

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 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小时时间表示最接近的等效值。若要设置它,请使用:

代码语言:javascript
运行
复制
localectl set-locale LC_TIME=en_GB.UTF-8

然后注销&重新登录以使更改在您的会话中生效。

如果使用其他语言环境,请使用localectl list-locales查看可用的区域设置定义。

如果不确定,可以通过将所需的区域设置指定为date命令的环境变量来测试输出:

代码语言:javascript
运行
复制
$ 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
票数 18
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/553679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档