Я понимаю, что это - распространенная проблема, но я не могу найти фиксацию к своей проблеме.
Живой в "Америке/Чикаго (CST,-0600)", но человечность показывает время UTC.
Это - 16:00 по местному времени здесь:
$ timedatectl
Local time: Thu 2018-11-22 16:11:47 CST
Universal time: Thu 2018-11-22 22:11:47 UTC
RTC time: Thu 2018-11-22 22:11:47
Time zone: America/Chicago (CST, -0600)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
Таким образом, TimeDateCtl знает местное время, но команда Date показывает мне UTC
$ date
Thu Nov 22 22:15:54 Chicago 2018
Я удостоверился, что временем BIOS является UTC, и мой сервис запущен, просто неправильно.
● systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2018-11-22 22:07:07 Chicago; 9min ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 1360 (systemd-timesyn)
Status: "Synchronized to time server 91.189.89.199:123 (ntp.ubuntu.com)."
Tasks: 2 (limit: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─1360 /lib/systemd/systemd-timesyncd
Что еще я пробую? Я установил его на местное время и назад, я перезапустил каждый сервис, который я могу найти.
Редактирование, я не вижу проблемы здесь также:
sudo hwclock - отладка
hwclock from util-linux 2.31.1
System Time: 1542925579.769423
Trying to open: /dev/rtc0
Using the rtc interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2018/11/22 22:26:20
Hw clock time : 2018/11/22 22:26:20 = 1542925580 seconds since 1969
Time since last adjustment is 1542925580 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2018-11-22 22:26:19.764979+0000
Ваша переменная среды TZ
причина проблемы.
$ echo $TZ
Chicago/New_York
Chicago/New_York
недопустимый часовой пояс, таким образом, date
примет значение по умолчанию к UTC вместо этого, но по некоторым причинам все еще отобразит первую часть имени зоны как часовой пояс, приводящий к:
$ timedatectl
Local time: Thu 2018-11-22 16:11:47 CST
Universal time: Thu 2018-11-22 22:11:47 UTC
RTC time: Thu 2018-11-22 22:11:47
Time zone: America/Chicago (CST, -0600)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
$ date
Thu Nov 22 22:15:54 Chicago 2018
Теперь для устранения проблемы мы просто должны узнать, где то неправильное значение установлено, и удалите строку. Ищите что-то как одна из строк ниже в Ваших сценариях инициализации оболочки/профиля, как ~/.profile
, ~/.bashrc
или если это влияет на всех пользователей, возможно, ровных /etc/environment
, /etc/profile
, /etc/profile.d/*
или /etc/bash.bashrc
:
TZ='Chicago/New_York'
export TZ='Chicago/New_York'