Відповіді:
Інструмент, який я виявив більш простим у використанні, - це dpkg-reconfigure. Використання:
sudo dpkg-reconfigure tzdata
Вам буде надано безліч варіантів, включаючи деякі, які не включені до tzselect.
Це, мабуть, трохи пізно для ОП, і більше призначене для інших шукачів, які приїжджають сюди.
Якщо вам потрібно неінтерактивне рішення, спробуйте це рішення змінити часовий пояс за допомогою dpkg-переналаштування tzdata та debconf-set-select
echo "Europe/Zurich" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata
Ви можете визначити свій часовий пояс, заглянувши в / usr / share / zoneinfo. Фактично команда dpkg-перенастроювання вище копіює відповідний файл звідти в / etc / localtime. Раніше я це робив вручну, і, здається, це працює добре.
Не варто надто дивуватися, якщо тривалі процеси не змінять зміни. наприклад, приходять в голову часові позначки журналу Apache. Поміркуйте, чи це має значення, а отже, чи потрібно вам перезапустити запущені процеси або навіть перезавантажити.
/etc/localtimeще не існує. Якщо вона існує і є софтпосиланням /usr/share/zoneinfo/whatever, вона береться за основу, і вона /etc/localtimeвідповідно оновлюється, замінюючи зміни.
Щоб редагувати його неінтерактивно, на останніх версіях 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 може заощадити багато системних дзвінків, оскільки часто використовувані функції, пов’язані з датою / часом, мають доступ до файлової системи кожного разу, коли якась програма вимагає поточної дати. Це мікрооптимізація, але досить проста.
TZу вашому файлі профілю, створюючи символьне посилання? Це на моєму досвіді це зовсім не правда. Можливо, ви мали на увазі "Також не забудьте створити символьне посилання ..."?
$TZзмінна читається за glibcфункціями: gnu.org/software/libc/manual/html_node/TZ-Variable.html
echo "TZ=Etc/UTC" >> /etc/environment? ви пропускаєте TZ=частину ... (якщо у випадку, якщо хтось все ще працює давні версії debian). Крім того, неінтерактивні речі, як демони, все одно використовуватимуть /etc/localtimeверсію замість одного набору в TZ...