Dreamhost, кажется, думает, что нам нравится PDT, несмотря на то, что мы на Среднем Западе. Как мне изменить часовой пояс?
5 ответов
Инструмент, который я нашел более простым в использовании, это dpkg-reconfigure
. Использование:
sudo dpkg-reconfigure tzdata
Вам будет предложено множество вариантов, включая те, которые не включены в tzselect
.
Это, вероятно, немного поздно для OP, и больше предназначено для других искателей, которые приезжают сюда.
Если вам нужно неинтерактивное решение, попробуйте это решение, изменив часовой пояс с помощью dpkg -configure tzdata и debconf-set-selections
echo "Europe/Zurich" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Вы можете выяснить свой часовой пояс, покопавшись в /usr /share /zoneinfo. Фактически вышеприведенная команда dpkg-reconfigure копирует соответствующий файл в /etc /localtime. Раньше я делал это вручную, и, похоже, все работает нормально.
Не удивляйтесь, если долго запущенные процессы не воспримут изменения. например, на ум приходят метки времени регистрации Apache. Подумайте, имеет ли это значение, и, следовательно, нужно ли вам перезапустить запущенные процессы или даже перезагрузить компьютер.
Обновить:
Канонический ответ (за что Ynhockey заслуживает похвалы) выглядит так:
dpkg-reconfigure tzdata
Мой оригинальный ответ ниже. Я бы просто удалил этот ответ полностью, но superuser.com не позволяет удалять принятые ответы.
http://www.debian-administration.org/articles/213 говорит
простой способ отредактировать ваш часовой пояс - использовать команду
/usr/bin/tzselect
.
...
После того, как вы установили часовой пояс, вы можете захотеть изменить настройку UTC, на машинах Debian вы можете найти это в файле/etc/default/rcS
. Хотя изменение этого потребует перезагрузки.
Чтобы не редактировать его в последних версиях Debian и Ubuntu (Stretch/Xenial и т.д.), Вам также необходимо удалить /etc/localtime
, иначе /etc/timezone
будет перезаписан.
echo 'Europe/Zurich' > /etc/timezone
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata
Этот ответ основан на ответе mc0e. Я не могу добавить комментарий с моей репутацией.
TL; DR
echo "TZ=Etc/UTC" >> /etc/environment
tzconfig
где Etc/UTC
- ваш предпочтительный часовой пояс, который вы нашли с помощью tzselect
.
Более длинная версия
Когда вы используете
dpkg-reconfigure tzdata
информация о часовом поясе не сохраняется после перезагрузки. Вы можете проверить свои настройки с
diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Если вы обновляете только /etc/timezone
, обновление не будет соответствовать /etc/localtime
, поэтому лучше выполнить
tzconfig
Используйте tzselect
чтобы узнать, какие часовые пояса действительно существуют (или просто просмотрите каталог /usr/share/zoneinfo
).
В системах POSIX TZ
должен иметь приоритет перед /etc/localtime
:
export TZ='Europe/Berlin'
$ date
Tue Apr 10 08:51:03 CEST 2018
export TZ='Pacific/Efate'
$ date
Tue Apr 10 18:28:33 +11 2018
Непосредственное использование TZ
позволяет сэкономить многие системные вызовы, поскольку часто используемые функции, связанные с датой и временем, должны обращаться к файловой системе каждый раз, когда какая-либо программа запрашивает текущую дату. Это микрооптимизация, но довольно простая.