"hwclock -u"가 UTC 시간을 표시하지 않는 이유는 무엇입니까?

"hwclock -u"가 UTC 시간을 표시하지 않는 이유는 무엇입니까?
               Local time: Sat 2022-01-29 23:18:39 CET
           Universal time: Sat 2022-01-29 22:18:39 UTC
                 RTC time: Sat 2022-01-29 22:18:39
                Time zone: Europe/Paris (CET, +0100)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

[root@rhcsa1 ~]# hwclock --get -u
2022-01-29 23:18:53.243325+01:00

답변1

하드웨어 시계는 시간대를 알지 못하며 단지 시계일 뿐입니다. 따라서 UTC가 아닌 다른 특정 시간대로 설정되어 있는 경우 시간대를 직접 제공해야 합니다.

-u,옵션은 UTC 시간을 표시하도록 --utc지시하지 않습니다 . 예, 시계 가 가 아닌 hwclockUTC로 처리되도록 지정하는 옵션일 뿐입니다 -l.--localtime

hwclock이는 시계에 저장된 시간이 UTC임을 하드웨어에 알려주 므로 올바른 현지 시간을 계산하고 표시할 수 있습니다.

UTC 시간을 표시 하려면 hwclock다음과 같이 구현할 수 있습니다.

# TZ=UTC date
Sat Jan 29 22:52:47 UTC 2022
# TZ=UTC hwclock --get --utc
2022-01-29 23:52:50.968087+00:00

제 경우에는 하드웨어 시계가 UTC가 아닌 현지 시간으로 설정되어 있어서 UTC로 읽어도 출력이 일치하지 않습니다. 귀하의 경우에는 일치해야 합니다. 내 경우에는 잘못된 시간대로 설정되어 있으면 일치하지 않습니다 --localtime.TZ

따라서 하드웨어 시계가 UTC로 설정되어 있지 않으면 hwclockUTC 시간을 인쇄할 수 없습니다.


매뉴얼 페이지에서도 이에 대해 설명합니다.

-r, --display; --get은
하드웨어 시계를 읽고 해당 시간을 ISO 8601 형식으로 표준 출력에 인쇄합니다.하드웨어 시계를 UTC로 설정하더라도 표시되는 시간은 항상 현지 시간입니다.

관련 정보