时区采用 12 小时制 (AM/PM)

时区采用 12 小时制 (AM/PM)

我在 Debian 中遇到了时区问题

我需要在整个系统中设置 12 小时制(AM/PM)的区域。区域设置为“en_US.UTF.8”,输出“date”命令正确。“timedatectl”中的时间格式不正确(24 小时制)。有什么想法吗?

区域设置:

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

timedatectl

    Local time: Mon 2022-02-21 20:09:15 CET
           Universal time: Mon 2022-02-21 19:09:15 UTC
                 RTC time: Mon 2022-02-21 19:09:14
                Time zone: Europe/Warsaw (CET, +0100)
System clock synchronized: no
              NTP service: active
          RTC in local TZ: no

日期

Mon 21 Feb 2022 08:09:08 PM CET

systemctl 进程状态

   Active: active (running) since Mon 2022-02-21 20:09:01 CET; 22s ago


    

答案1

12 小时 AM/PM 或 24 小时格式取决于地区偏好,而不是时区。

答案2

timedatectl 不会打印 12 小时制时间,而是使用 strftime() 进行调用%a %Y-%m-%d %H:%M:%S

GNUcoreutils 日期调用本地函数,在某些情况下可以调用 strftime(),小时分钟秒%I:%M:%S %I 是 12 小时制。也可以使用自定义格式调用日期,例如date +%r

相关内容