Как изменить часовой пояс на UTC/GMT?

Вопрос или проблема

В настоящее время, когда я выполняю команду 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

  1. Проверьте текущее состояние времени и часового пояса:

    timedatectl status
  2. Посмотрите доступные временные зоны:

    timedatectl list-timezones
  3. Установите часовой пояс UTC:

    sudo timedatectl set-timezone UTC
  4. Проверьте еще раз статус, чтобы убедиться, что часовой пояс изменился:

    timedatectl status

Способ 2: Использование dpkg-reconfigure tzdata

  1. Запустите конфигурацию временной зоны:

    sudo dpkg-reconfigure tzdata
  2. В интерфейсе скроллируйте в самый низ списка континентов и выберите Etc (или Нет выше); затем в следующем списке выберите UTC.

  3. После завершения убедитесь, что часовой пояс изменился, выполнив команду:

    date

Способ 3: Прямое создание символической ссылки (для старых версий Unix)

Если вам нужно воспользоваться более классическим способом, это может выглядеть следующим образом:

  1. Создайте символическую ссылку на UTC:

    sudo ln -fs /usr/share/zoneinfo/UTC /etc/localtime
  2. Проверьте текущий часовой пояс, выполнив команду:

    date

Дополнительные советы

  • Если вам нужно временно изменить часовой пояс для одного конкретного команды, вы можете использовать переменную TZ. Например, чтобы выполнить команду ls с часовым поясом UTC:

    TZ=UTC ls -l --full-time
  • Для синхронизации системного времени рекомендуется использовать службу NTP (например, ntp или systemd-timesyncd), чтобы поддерживать точное время.

Следуя этим шагам, вы успешно измените часовой пояс вашей системы на UTC/GMT.

Оцените материал
Добавить комментарий

Капча загружается...