Вопрос или проблема
В настоящее время, когда я выполняю команду date из bash, я получаю следующее:
Чт Май 17 12:21:00 IST 2012
Ниже приведена моя конфигурация часового пояса, основанная на выполнении dpkg-reconfigure tzdata
Текущий часовой пояс по умолчанию: 'Europe/Dublin' Местное время сейчас: Чт Май 17 12:32:52 IST 2012. Всемирное время сейчас: Чт Май 17 11:32:52 UTC 2012.
Есть идеи, как мне изменить IST на UTC/GMT?
Есть идеи, как мне изменить IST на GMT?
Чтобы переключиться на UTC, просто выполните sudo dpkg-reconfigure tzdata
, прокрутите вниз в списке континентов и выберите Etc
или None of the above
; во втором списке выберите UTC
. Если вам нужен GMT вместо UTC, он находится чуть выше UTC в этом списке. 🙂
sudo timedatectl set-timezone UTC
Эта команда изменит ваш часовой пояс на UTC для всей системы.
Вы можете выполнить timedatectl list-timezones
, чтобы увидеть все доступные часовые пояса.
выдержка из @MattJohnson’s ответ на SO
Зоны, такие как
Etc/GMT+6
, намеренно перевернуты для обеспечения обратной совместимости со стандартами POSIX. См. комментарии в этом файле.Вы почти никогда не должны использовать эти зоны. Вместо этого вы должны использовать полностью названный часовой пояс, такой как
America/New_York
илиEurope/London
или любой другой, подходящий для вашего местоположения. Ознакомьтесь со списком здесь.
В старом стиле Un*x (SunOS, HPUX…) вы можете сделать следующее:
ln -fs /usr/share/zoneinfo/UTC /etc/localtime
Проверьте содержимое /usr/share/zoneinfo, чтобы получить нужный вам часовой пояс.
Например, Ирландское летнее время (IST) можно определить как
-rw-r--r-- 1 root root 3661 Мар 13 22:18 /usr/share/zoneinfo/posix/Eire
или
lrwxrwxrwx 1 root root 13 Мар 13 22:18 /usr/share/zoneinfo/Europe/Dublin -> ../posix/Eire
Однако самое главное – использовать правильную справочную информацию по часам и демон NTP (например, openntpd), так как часовой пояс используется только для отображения/конвертации времени в строки, а не для его хранения (независимо от часового пояса, разница с 01/01/1970 везде на Земле одинакова).
Обновлено для 14.04 до сегодняшнего дня
Просмотр статуса времени и даты:
$ timedatectl status
Местное время: Вс 2018-07-29 15:26:03 BST
Всемирное время: Вс 2018-07-29 14:26:03 UTC
Время RTC: Вс 2018-07-29 14:26:03
Часовой пояс: Europe/London (BST, +0100)
Системные часы синхронизированы: да
systemd-timesyncd.service активен: да
RTC в местном часовом поясе: нет
Просмотреть список часовых поясов:
Список часовых поясов (425)
$ timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
...
Pacific/Tongatapu
Pacific/Wake
Pacific/Wallis
UTC
Установить часовой пояс на UTC:
$ timedatectl set-timezone UTC
Просмотр статуса времени и даты:
$ timedatectl status
Местное время: Вс 2018-07-29 14:46:27 UTC
Всемирное время: Вс 2018-07-29 14:46:27 UTC
Время RTC: Вс 2018-07-29 14:46:27
Часовой пояс: UTC (UTC, +0000)
Системные часы синхронизированы: да
systemd-timesyncd.service активен: да
RTC в местном часовом поясе: нет*
Что-то вроде этого?
$ date
Ср Июл 16 22:52:47 EDT 2014
$ cat /etc/timezone
America/New_York
$ sudo dpkg-reconfigure tzdata
$ service cron stop && service cron start
В случае, если вам это нужно только для одной команды, скажем, ls
, используйте следующее:
TZ=UTC ls -l --full-time
Когда я увидел, что TZ VDS неверный……
// посмотреть текущий TZ
# date
Ср Сен 25 16:27:14 UTC 2024
// посмотреть текущий континент/место
# cat /etc/timezone
Etc/UTC
// узнать наше новое местоположение
# timedatectl list-timezones |grep Moscow
Europe/Moscow
// вы не сможете ошибиться в новом местоположении таким образом
# timedatectl list-timezones |grep Moscow |xargs timedatectl set-timezone
// убедитесь, что местоположение изменилось
# cat /etc/timezone
Europe/Moscow
// дата отображается корректно
# date
Ср Сен 25 19:31:45 MSK 2024
Ответ или решение
Для изменения часового пояса на UTC (GMT) в операционной системе Linux, следуйте следующим шагам:
Способ 1: Использование timedatectl
-
Проверьте текущее состояние времени и часового пояса:
timedatectl status
-
Посмотрите доступные временные зоны:
timedatectl list-timezones
-
Установите часовой пояс UTC:
sudo timedatectl set-timezone UTC
-
Проверьте еще раз статус, чтобы убедиться, что часовой пояс изменился:
timedatectl status
Способ 2: Использование dpkg-reconfigure tzdata
-
Запустите конфигурацию временной зоны:
sudo dpkg-reconfigure tzdata
-
В интерфейсе скроллируйте в самый низ списка континентов и выберите
Etc
(илиНет выше
); затем в следующем списке выберитеUTC
. -
После завершения убедитесь, что часовой пояс изменился, выполнив команду:
date
Способ 3: Прямое создание символической ссылки (для старых версий Unix)
Если вам нужно воспользоваться более классическим способом, это может выглядеть следующим образом:
-
Создайте символическую ссылку на UTC:
sudo ln -fs /usr/share/zoneinfo/UTC /etc/localtime
-
Проверьте текущий часовой пояс, выполнив команду:
date
Дополнительные советы
-
Если вам нужно временно изменить часовой пояс для одного конкретного команды, вы можете использовать переменную
TZ
. Например, чтобы выполнить командуls
с часовым поясом UTC:TZ=UTC ls -l --full-time
-
Для синхронизации системного времени рекомендуется использовать службу NTP (например,
ntp
илиsystemd-timesyncd
), чтобы поддерживать точное время.
Следуя этим шагам, вы успешно измените часовой пояс вашей системы на UTC/GMT.