Установка часового пояса от терминала

Я хочу изменить часовой пояс системных часов от терминала.

Это может быть, покончили

tzselect

"который открывает gui в терминале"

или

sudo cp /usr/share/zoneinfo/Europe/London /etc/localtime

"который установит на GMT"

Но есть ли способ установить часовой пояс только с смещением т.е. 1 или +5 и т.д.?

Я должен сделать это, поскольку я пишу приложение для корректировки timeoffset или журналов отчета и единственной информации, которую я имею, пользовательский IP. Я могу использовать веб-приложение для нахождения местоположения IP, но затем я должен установить смещение, которое было бы легко, ЕСЛИ я мог бы просто получить смещение местоположения, но если бы я должен найти зону и город, это была бы реальная боль.

Если кто-либо знает ответ на то, как установить системные часы с +,/-hour было бы большим.

212
задан 9 October 2017 в 11:03

8 ответов

Чтобы изменить часовой пояс с терминала, просто нажмите Ctrl + Alt + T на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:

sudo dpkg-reconfigure tzdata

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

0
ответ дан 9 October 2017 в 11:03

TL; DR /etc/localtime символьная ссылка, которая указывает на файл в /usr/share/zoneinfo/Continent/City. Путем изменения, где это указывает, можно изменить часовой пояс.

Для изменения часового пояса удалите /etc/localtime и присвойте символьную ссылку на свой желаемый город. Например, ls -l /etc/localtime отчеты, что этот файл указывает на /usr/share/zoneinfo/America/Denver. Для изменения его на Нью-Йорк я делаю

  1. sudo rm /etc/localtime
  2. sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
  3. Ожидайте минута моих часов, которые будут обновлены

Рев снимка экрана показывает шаги и подтверждение от timedatectl

enter image description here

12
ответ дан 9 October 2017 в 11:03

Вы можете использовать файлы GMT ± x в /usr/share/zoneinfo/Etc.

sudo ln -fs /usr/share/zoneinfo/Etc/GMT$offset /etc/localtime
0
ответ дан 9 October 2017 в 11:03

Вы также можете использовать новый timedatectl для установки времени в 14.04.

sudo timedatectl set-timezone America/New_York
0
ответ дан 9 October 2017 в 11:03

Я понимаю, что этот поток немного устарел, но я искал лучшее решение, потому что мне нужно было автоматически установить часовой пояс в ВМ после того, как пользователь загрузит его с нашего веб-сайта и развернет его. Вот что я закончил:

echo "Setting TimeZone..."
export tz=`wget -qO - http://geoip.ubuntu.com/lookup | sed -n -e 's/.*<TimeZone>\(.*\)<\/TimeZone>.*/\1/p'` &&  timedatectl set-timezone $tz
export tz=`timedatectl status| grep Timezone | awk '{print $2}'`
echo "TimeZone set to $tz"

Это будет запрашивать geoip.ubuntu.com с сервера, как только он будет запущен в новой сети (мой скрипт сначала проверяет соединение), а затем устанавливает часовой пояс сервера на основании ответа.

"wget ​​-q0 -" указывает wget выводить только результаты в стандартный вывод, который затем передается в переменную $ tz.

Надеюсь, это кому-нибудь поможет!

0
ответ дан 9 October 2017 в 11:03

Самый простой способ обновить часовой пояс - это использовать sudo dpkg-reconfigure tzdata. Но это не так легко написано.

Если вы хотите явно установить часовой пояс с помощью скрипта (например, для настройки виртуальной машины), вот рецепт:

Установите переменную для желаемого часового пояса, например, одно из

tz=Europe/London
tz=America/Anchorage
tz=Etc/GMT+6

Допустимыми значениями являются каталоги и имена файлов в /usr/share/zoneinfo.

Тогда просто

sudo cp -vf /usr/share/zoneinfo/$tz /etc/localtime
echo $tz | sudo tee /etc/timezone

Обратите внимание, что и /etc/localtime, и /etc/timezone должны быть согласованы.

Возможно, теперь перезагрузите компьютер, чтобы обновить все ваши сервисы (например, cron).

0
ответ дан 9 October 2017 в 11:03

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

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

cat /etc/timezone  

или

sudo hwclock --show  

Я затем делаю:

timedatectl set-timezone <_designation_>

где <_designation_> одно из следующего:

Американский/Восточный
Американский/Центральный
США/Гора
США/Тихий океан
США/Аляска
США/Алеут
США/Аризона
US/East-Indiana
США/Гавайи
US/Indiana-Starke
США/Мичиган
US/Pacific-New
США/Самоа

НАПРИМЕР:

timedatectl set-timezone US/Eastern  

Другие обозначения часового пояса могут быть найдены здесь: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

5
ответ дан 9 October 2017 в 11:03

Вы не сможете сделать это, если не выберете файл часового пояса, которому хотите соответствовать каждое смещение часового пояса.

В некоторых ответах предлагалось использовать файлы в / usr / share / zoneinfo / Etc, но проблема в том, что они не зависят от летнего времени.

Таким образом, если вы не выберете какую-либо конфигурацию часового пояса для соответствия каждому смещению или не будете заботиться о летнем времени, нет способа сделать это вообще.

0
ответ дан 9 October 2017 в 11:03

Другие вопросы по тегам:

Похожие вопросы: