Fedora
將所有使用者的時鐘設置為 24 小時格式
在 Fedora 30 上,我目前在桌面環境中以 24 小時格式顯示日期。我正在通過chronyd同步時間。但在 CLI 上,時間顯示
Fri 22 Nov 2019 02:47:51 PM EST
為所有使用者。我想將時間格式設置為使用 24 小時制。
timedatectl
作為使用者設置和重新登錄沒有任何區別。
如果您
date
在命令行上使用該命令,並返回類似 的Fri 22 Nov 2019 02:47:51 PM EST
內容,則表示您的區域設置目前設置為指定 12 小時時間格式的區域設置。鍵入
locale
以查看目前的區域設置。基本上,所有的語言環境設置都只是環境變數,但它們之間存在一些依賴關係。locale設置的邏輯如下:
- 首先,該
LANG
變數將為所有LC_*
語言環境類別定義預設語言環境,除非對特定類別有更具體的設置。- 每個語言環境類別都有一個名稱,例如
LC_CTYPE
所使用的字元集、LC_COLLATE
排序順序以及LC_TIME
日期和時間的表示。如果存在與語言環境類別名稱對應的環境變數,它將覆蓋由 設置的預設值LANG
。- 最後,有一個終極覆蓋
LC_ALL
。如果已設置,它將覆蓋所有其他區域設置。它通常用於腳本或類似的export LC_ALL=C
,以確保腳本使用的任何命令的輸出將採用 POSIX 預設美國英語格式,而不是任何可能使解析輸出更加困難的本地化格式。(當然,首先在腳本中解析供人類使用的輸出並不是一個理想的選擇——如果命令具有“腳本友好的輸出”選項,您應該改用它!)從歷史上看,在 RedHat/Fedora 上,系統預設區域設置應該在
/etc/sysconfig/i18n
文件中(i18n = internationali$$ s|z $$ation,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