Вопрос: Как изменить настройки временной зоны из командной строки


У меня есть виртуальная машина, которая настроена на PST, что несколько коллег имеют разные часовые пояса. Если бы я хотел изменить часовой пояс на EST и GMT, что мне нужно сделать?


169
2017-08-31 18:19


Источник




Ответы:


использование timedatectl

sudo timedatectl set-timezone <timeszone>

Примеры:

  • Часовой пояс как EST

    sudo timedatectl set-timezone EST
    
  • Часовой пояс: UTC

    sudo timedatectl set-timezone UTC
    
  • Список всех действующих часовых поясов

    timedatectl list-timezones
    

Эта команда идеально для сценариев автоматизации, поскольку он не требует каких-либо взаимодействие с пользователем по сравнению с другим данным ответом на основе dpkg-reconfigure tzdata,


195
2018-03-08 13:15



Не поклонник +1 комментариев, но я помещаю его здесь, так как это сработало для меня наилучшим образом. Я хотел, чтобы один однострочный инструмент командной строки изменил часовой пояс, вместо того чтобы хотеть запускать какое-то общее меню или программу gui (я не знаю, что tzdata делает, как это работает, но мне не нужно с помощью этой одной строки). Благодаря! - Phil Ryan
работает как шарм;) - user332660
Интересно, что он делает что-то немного отличное от tzdata. У меня возникла проблема с тем, что время Java отличается от системного времени после применения патча. Цдата не работал, чтобы решить проблему, но это произошло. - Daniel Bower
это не сработало для меня; Однако dpkg-reconfigure сделал трюк. - Antti Haapala
@AnttiHaapala, на котором OS и версия? - Jossef Harush


Также работают следующие. Для GMT:

ln -sf /usr/share/zoneinfo/GMT /etc/localtime

Лес:

ln -sf /usr/share/zoneinfo/EST /etc/localtime

23
2017-08-31 10:09



Я думаю, что было бы лучше связать один из файлов города, а не GMT ​​или EST, так как тогда они будут отслеживать летнее время, тогда как связь (например, GMT) не изменит системное время, чтобы отражать, когда действует летнее сбережение в вашем городе. например.: ln -sf /usr/share/zoneinfo/Europe/London /etc/localtime - Asfand Qazi


Как root вы должны выполнить:

dpkg-reconfigure tzdata

Необходимо запустить инструмент, основанный на меню, который позволит вам изменить часовой пояс.


18
2017-08-31 19:41





Самый простой способ, особенно для сервера, - перечислить временные интервалы:

timedatectl list-timezones

И выберите ваш, например:

timedatectl set-timezone Europe/Athens

Это оно! , :-)


10
2018-02-18 15:52





Чтобы запустить одну программу с другим часовым поясом, установите TZ переменная среды, например. бег TZ=Pacific/Kiritimati date время, которое вы видите на Острове Рождества, или export TZ=Pacific/Kiritimati чтобы установка была последней для сеанса оболочки.


4
2017-09-01 00:04





Отредактируйте timezone файл на /etc как:

Etc/GMT

Вы можете использовать следующий формат:

Region "/" City 

Пример /etc/timezone:

Europe/Athens

или

Europe/Paris
Europe/London

Вы можете поэкспериментировать с: dpkg-reconfigure tzdata и проверьте cat файл часового пояса.

Вы должны перезагрузить или снова запустить службу (а не службу ntp). Я не знаю, какой из них. Если кто-то знает, пожалуйста, поделитесь с нами. (Протестировано на Ubuntu 15.10, это изменение учитывается мгновенно)


3
2017-07-28 12:19





cp -p / usr / share / zoneinfo / US / Pacific / etc / localtime

Я рекомендую СОГЛАСОВАТЬ ссылку, как упоминалось другими. Если какой-либо сценарий случайно записывает ваш файл / etc / localtime, он перезаписывает ваш файл часового пояса в Тихоокеанском регионе ... и это немного больно, чтобы его заменить.

Просто скопируйте файл Pacific поверх файла localtime с помощью приведенной выше команды.


1
2017-07-18 20:04



Это действительно сработало для меня. Я думаю, что есть ошибка с Докером, возможно (?). И timedatectl, и dpkg-reconfigure tzdata не удалось для меня. После того, как я скопировал, часовой пояс изменился с EST на PDT. - Sun


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

#!/bin/sh
sudo timedatectl set-timezone $(tzselect)
echo
echo timedatectl says:
timedatectl

Я называю это tz-set,


0
2018-04-26 07:24