"hwclock" 명령은 현지 시간에 양수 오프셋을 적용하는 반면, "date" 명령은 현지 시간에 음수 오프셋을 적용하는 이유는 무엇입니까?

"hwclock" 명령은 현지 시간에 양수 오프셋을 적용하는 반면, "date" 명령은 현지 시간에 음수 오프셋을 적용하는 이유는 무엇입니까?

시간대를 사용하는 데 몇 가지 문제가 있습니다. 누군가 나에게 이 결과를 설명해 줄 수 있나요? 이 hwclock명령이 현지 시간에 양수 오프셋을 적용하고 이 date명령은 음수 오프셋을 적용하는 이유는 무엇입니까?

$> export TZ=BRA+2
$> date
Tue Jan 31 18:22:45 BRA 2017
$> date -u
Tue Jan 31 20:22:48 UTC 2017
$> hwclock --systohc
$> hwclock -l
Tue Jan 31 18:23:04 2017  0.000000 seconds
$> hwclock -u
Tue Jan 31 16:23:12 2017  0.000000 seconds
$> hwclock --systohc --utc
$> hwclock -l
Tue Jan 31 20:23:31 2017  0.000000 seconds
$> hwclock -u
Tue Jan 31 18:23:34 2017  0.000000 seconds

답변1

-l나는 당신의 혼란이 및 -ufor 의 사용에 있다고 생각합니다 hwclock.

hwclock 명령에 --utc 또는 --localtime 옵션을 사용한다고 해서 하드웨어 시계 시간이 UTC나 현지 시간으로 표시된다는 의미는 아닙니다.

이는 실행 시 다음을 의미합니다.

hwclock -u

시간을 utc 형식으로 표시하는 대신 hwclock을 UTC 형식으로 해석하거나 그 반대로 해석하도록 시스템에 지시합니다 -l.

매뉴얼 페이지에서:

-u, --utc
--localtime
Indicates that the Hardware Clock is kept in Coordinated Universal
Time or local time, respectively. It is your choice whether to keep
your clock in UTC or local time, but nothing in the clock tells
which you've chosen. So this option is how you give that information
to hwclock. If you specify the wrong one of these options (or
specify neither and take a wrong default), both setting and querying
of the Hardware Clock will be messed up.

If you specify neither --utc nor --localtime , the default is whichever
was specified the last time hwclock was used to set the clock (i.e.
hwclock was successfully run with the --set, --systohc, or --adjust
options), as recorded in the adjtime file. If the adjtime file
doesn't exist, the default is local time.

(원천)

관련 정보