Я хочу изменить часовой пояс системных часов с терминала.
Это может быть сделано с
tzselect
"который открывает графический интерфейс в терминале"
или же
sudo cp /usr/share/zoneinfo/Europe/London /etc/localtime
"который установит gmt"
Но есть ли способ установить часовой пояс только со смещением, т.е. -1 или +5 и т. Д.?
Мне нужно сделать это, когда я пишу приложение для настройки временных смещений или отчетов, и единственная информация, которую я имею, - это IP-адрес пользователя. Я могу использовать веб-приложение, чтобы найти местоположение IP, но тогда мне нужно установить смещение, которое было бы легко, если бы я мог просто получить смещение местоположения, но если мне нужно найти зону и город, это было бы настоящей болью ,
Если кто-нибудь знает ответ на вопрос, как установить системные часы с +/- часом, было бы здорово.
Ответы:
Чтобы изменить часовой пояс с терминала, просто нажмите Ctrl+ Alt+ Tна клавиатуре, чтобы открыть терминал. Когда он откроется, выполните команду (ы) ниже:
После открытия просто следуйте инструкциям на экране, чтобы изменить часовой пояс.
источник
Вы также можете использовать новый,
timedatectl
чтобы установить время в 14.04.источник
ls -R --group-directories-first /usr/share/zoneinfo
. (Будьте осторожны, не изменяйте и не стирайте здесь какие-либо файлы.) Более подробная информацияposix
иright
префиксы здесь .sudo timedatectl set-timezone Etc/UTC
для UTC.Вы можете использовать GMT ± x файлы в
/usr/share/zoneinfo/Etc
.источник
/etc/timezone
.sudo dpkg-reconfigure --frontend noninteractive tzdata
Я понимаю, что этот поток несколько устарел, но я искал лучшее решение, потому что мне нужно было автоматически установить часовой пояс в виртуальной машине после того, как пользователь загрузит его с нашего веб-сайта и развернет его. Вот чем я закончил:
Это будет запрашивать geoip.ubuntu.com с сервера, как только он будет запущен в новой сети (мой скрипт сначала проверяет подключение), а затем устанавливает часовой пояс сервера на основе ответа.
"Wget -q0 -" указывает wget выводить только результаты в стандартный вывод, который затем передается в переменную $ tz.
Надеюсь, это поможет кому-то!
источник
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
источник
tzdata
уже есть, поэтому предлагать то же самое бессмысленно. Во-вторых,tzdata
делает то же самое. Пользователь сам решает, что он предпочитает, так что он не лучше и не хуже - просто предпочтения человека./var/lib/dpkg/info/tzdata.list
предполагает, что все предметы/usr/share/zoneinfo
поставляются с этим пакетом, я бы предположил, что вам нужно установить пакет, чтобы иметь все предметы, но, честно говоря, я не совсем уверен, плюс не совсем знаком с тем, как это работает на других распределения. Подумайте об этом в качестве вопроса о Unix и Linux , и не стесняйтесь ссылаться на этот пост, если вы хотите предоставить контекст для вопроса.Самый простой способ обновить часовой пояс - это использовать
sudo dpkg-reconfigure tzdata
. Но это не так легко написано.Если вы хотите установить часовой пояс явно с помощью скрипта (например, для настройки виртуальной машины), вот рецепт:
Установите переменную для часового пояса, который вы хотите, например, один из
Допустимые значения - это каталоги и имена файлов
/usr/share/zoneinfo
.Тогда просто
Обратите внимание, что оба
/etc/localtime
и/etc/timezone
должны быть последовательными.Возможно, теперь перезагрузитесь, чтобы обновить все ваши сервисы (например, cron).
источник
cp
для установки / etc / localtime. / etc / localtime - символическая ссылка на правильный файл. Если вы используете егоcp
для изменения, вы фактически закроете содержимое любого файла tzdata, на который он в данный момент указывает, так что внезапно (например) файл tzdata UTC содержит данные часового пояса для Европы / Лондона, а не для UTC, что плохо (и раздражает). для устранения неполадок, как я могу сказать из личного опыта)Вот метод, который я использую, который ориентирован на США, так как мне не нужно беспокоиться о неамериканских часовых поясах.
Если мне нужно определить текущий часовой пояс, я либо делаю:
или же
Я тогда делаю:
где
<_designation_>
один из следующих:США / Восточные
США / Центральные
США / Горные
США / Тихий океан
США / Аляска
США / Алеутские
США / Аризона
США / Восточная-Индиана
США / Гавайи
США / Индиана-Старке
США / Мичиган
США / Тихоокеанский регион-Новые
США / Самоа
НАПРИМЕР:
Другие обозначения часовых поясов можно найти здесь: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
источник
tzselect
это хороший способ получить строку часового поясаВы не сможете сделать это, если не выберете файл часового пояса, который хотите соответствовать каждому смещению часового пояса.
В некоторых ответах предлагалось использовать файлы в / usr / share / zoneinfo / Etc, но проблема в том, что они не зависят от летнего времени.
Таким образом, если вы не выберете какую-либо конфигурацию часового пояса для соответствия каждому смещению или не будете заботиться о летнем времени, вы не сможете сделать это вообще.
источник