Я хочу изменить часовой пояс системных часов от терминала.
Это может быть, покончили
tzselect
"который открывает gui в терминале"
или
sudo cp /usr/share/zoneinfo/Europe/London /etc/localtime
"который установит на GMT"
Но есть ли способ установить часовой пояс только с смещением т.е. 1 или +5 и т.д.?
Я должен сделать это, поскольку я пишу приложение для корректировки timeoffset или журналов отчета и единственной информации, которую я имею, пользовательский IP. Я могу использовать веб-приложение для нахождения местоположения IP, но затем я должен установить смещение, которое было бы легко, ЕСЛИ я мог бы просто получить смещение местоположения, но если бы я должен найти зону и город, это была бы реальная боль.
Если кто-либо знает ответ на то, как установить системные часы с +,/-hour было бы большим.
Чтобы изменить часовой пояс с терминала, просто нажмите Ctrl kbd> + Alt kbd> + T kbd> на клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:
sudo dpkg-reconfigure tzdata
После открытия просто следуйте инструкциям на экране, чтобы изменить часовой пояс.
TL; DR /etc/localtime
символьная ссылка, которая указывает на файл в /usr/share/zoneinfo/Continent/City
. Путем изменения, где это указывает, можно изменить часовой пояс.
Для изменения часового пояса удалите /etc/localtime
и присвойте символьную ссылку на свой желаемый город. Например, ls -l /etc/localtime
отчеты, что этот файл указывает на /usr/share/zoneinfo/America/Denver
. Для изменения его на Нью-Йорк я делаю
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/America/New_York /etc/localtime
Рев снимка экрана показывает шаги и подтверждение от timedatectl
Вы можете использовать файлы GMT ± x в /usr/share/zoneinfo/Etc
.
sudo ln -fs /usr/share/zoneinfo/Etc/GMT$offset /etc/localtime
Вы также можете использовать новый timedatectl
для установки времени в 14.04.
sudo timedatectl set-timezone America/New_York
Я понимаю, что этот поток немного устарел, но я искал лучшее решение, потому что мне нужно было автоматически установить часовой пояс в ВМ после того, как пользователь загрузит его с нашего веб-сайта и развернет его. Вот что я закончил:
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.
Надеюсь, это кому-нибудь поможет!
Самый простой способ обновить часовой пояс - это использовать 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).
Вот метод, который я использую, который американо-централен, поскольку я не должен волноваться о неамериканских часовых поясах.
Если я должен определить зону текущего времени, я любой делает:
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
Вы не сможете сделать это, если не выберете файл часового пояса, которому хотите соответствовать каждое смещение часового пояса.
В некоторых ответах предлагалось использовать файлы в / usr / share / zoneinfo / Etc, но проблема в том, что они не зависят от летнего времени.
Таким образом, если вы не выберете какую-либо конфигурацию часового пояса для соответствия каждому смещению или не будете заботиться о летнем времени, нет способа сделать это вообще.