- Setting timezone from terminal
- 8 Answers 8
- Как изменить часовой пояс в Linux
- Посмотреть текущий часовой пояс
- Команда date
- Команда timedatectl
- ls -lh /etc/localtime
- Получить список доступных часовых поясов
- Утилита tzselect
- Утилита timedatectl
- Изменить часовой пояс
- Изменяем часовой пояс утилитой timedatectl
- Изменяем часовой пояс настройкой /etc/localtime
- Изменить часовой пояс только для одной программы или текущей сессии
- Изменить часовой пояс через графические утилиты
- Заключение
Setting timezone from terminal
«which will set to gmt» But is there a way to set time zone with just the offset ie.-1 or +5 etc? I need to do this as I’m writing an application to adjust timeoffset or report logs and the only info I have is the user IP. I can use a webapp to find the location of the IP, but then I need to set offset which would be easy IF I could just get the offset of the location, but if I need to find zone and city it would be a real pain. If anyone knows the answer to how to set system clock with +/-hour would be great.
Please help us to pick up the accepted answer. I think @Mitch’s answer is the best askubuntu.com/a/323163/22308
@NamGVU No, Mitch’s is not the best solution, it’s a «GUI in a terminal» answer. Even the OP said » this wont work as i need to altr timezone from a program without user input i need a command i can feed into terminal not gui solution», and that’s the same objective most would want when looking for a «terminal solution,» a script-friendly one. Collin Anderson’s is better if you know a city, or Ryan’s for plain GMT+-n
8 Answers 8
To change time zone from terminal, just press Ctrl + Alt + T on your keyboard to open Terminal. When it opens, run the command(s) below:
sudo dpkg-reconfigure tzdata
Once open, just follow the screens to change the time zone.
this wont work as i need to altr timezone from a program without user input i need a command i can feed into terminal not gui solution thanks for reply
thx. this helps, byt i’m already changed manually etc/timezone =) like php.net/manual/en/timezones.php . absolutely identical .
Reconfiguring tzdata seems to adjust the hardware clock too so that the displayed time stays the same after the time zone switch. You might want that if your time was correct but time zone was wrong. However you definitely don’t want to touch your hardware clock while traveling. The timedatectl approach seems to change time zone only.
You can also use the new timedatectl to set the time in 14.04.
sudo timedatectl set-timezone America/New_York
To see all available options, you can run ls -R —group-directories-first /usr/share/zoneinfo . (Be careful not to modify or erase any file here.) More info about posix and right prefixes is here.
I realize this thread is a bit dated, but I was looking for a better solution because I needed to automatically set the timezone in a VM after a user downloads it from our website and deploys it. Here’s what I ended up with:
echo "Setting TimeZone. " export tz=`wget -qO - http://geoip.ubuntu.com/lookup | sed -n -e 's/.*\(.*\).*/\1/p'` && timedatectl set-timezone $tz export tz=`timedatectl status| grep Timezone | awk ''` echo "TimeZone set to $tz"
This will query geoip.ubuntu.com from the server once it is started on the new network (my script checks for connectivity first course) and then set the server’s timezone based on the response.
The «wget -q0 -» tells wget to output only the results to stdout which is then piped to the $tz variable.
Как изменить часовой пояс в Linux
Часовой пояс в Linux обычно настраивается во время установки системы. Иногда пользователю может потребоваться его изменить. Способ изменения часового пояса (его еще называют временной зоной) может зависеть от конкретного дистрибутива. Рассмотрим некоторые из способов изменения часового пояса.
Посмотреть текущий часовой пояс
Посмотреть текущий часовой пояс можно разными способами.
Команда date
Команда date выводит текущую дату, время и часовой пояс:
$ date Вт мар 12 19:01:33 MSK 2019
В выводе команды мы можем видеть, что текущая временная зона соответствует Москве — MSK .
Команда timedatectl
Утилита timedatectl применяется для настройки и получения информации о текущем системном времени. Она доступна в системах, использующих systemd.
Если выполнить команду timedatectl без параметров, то будет выведена информация о системных часах, а также часовой пояс (в поле Time zone ).
$ timedatectl Local time: Вт 2019-03-12 20:18:08 MSK Universal time: Вт 2019-03-12 17:18:08 UTC RTC time: Вт 2019-03-12 17:18:09 Time zone: Europe/Moscow (MSK, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no
ls -lh /etc/localtime
Файл /etc/localtime это символическая ссылка, которая указывает на текущий часовой пояс, используемый в системе.
Для просмотра можно воспользоваться командной:
$ ls -lh /etc/localtime lrwxrwxrwx 1 root root 35 мар 12 20:09 /etc/localtime -> ../usr/share/zoneinfo/Europe/Moscow
Получить список доступных часовых поясов
Утилита tzselect
Перед тем, как устанавливать часовой пояс, нужно понять, какое значение можно установить. Для этого можно воспользоваться утилитой tzselect .
После запуска утилита tzselect отображает список географических областей. Вы должны ввести номер области и нажать Enter . Затем появится список стран. Аналогично, нужно ввести номер страны. Появится список городов. Вводим номер города. В результате вы сможете увидеть название вашей временной зоны.
tzselect Please identify a location so that time zone rules can be set correctly. Please select a continent, ocean, "coord", or "TZ". 1) Africa 2) Americas 3) Antarctica 4) Asia 5) Atlantic Ocean 6) Australia 7) Europe 8) Indian Ocean 9) Pacific Ocean 10) coord - I want to use geographical coordinates. 11) TZ - I want to specify the time zone using the Posix TZ format. #? 7
Утилита timedatectl
Утилита timedatectl поддерживает опцию list-timezones . Выполнив следующую команду можно просмотреть список всех доступных временных зон:
timedatectl list-timezones
Можно воспользоваться grep и ограничить область поиска. Например, выведем список временных зон только для Европы:
timedatectl list-timezones | grep Europe | less
Изменить часовой пояс
Изменяем часовой пояс утилитой timedatectl
Напомним, что утилита timedatectl доступна только для систем, использующих systemd. Если у вас нет утилиты timedatectl, то используйте способ описанный в следующем параграфе.
Для установки часового пояса с помощью утилиты timedatectl нужно выполнить команду:
timedatectl set-timezone Europe/Moscow
Во время ввода часового пояса можно нажимать дважды клавишу Tab , чтобы получить список часовых поясов.
Изменяем часовой пояс настройкой /etc/localtime
Данный способ наиболее универсальный и работает в большинстве дистрибутивов Linux.
Необходимо создать символическую ссылку /etc/localtime , чтобы она указывала на файл нужной временной зоны. Файлы временных зон хранятся в каталоге /usr/share/zoneinfo/ . Каждая зона имеет путь /usr/share/zoneinfo/Название/Зоны . Например, для Москвы это /usr/share/zoneinfo/Europe/Moscow .
Итак создадим ссылку на нужный файл временной зоны:
sudo unlink /etc/localtime sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Чтобы проверить, что временная зона установлена верно, можно выполнить команду date :
Изменить часовой пояс только для одной программы или текущей сессии
Чтобы установить часовой пояс для отдельной программы можно задать его через переменную окружения TZ :
TZ=America/Chicago программа
Чтобы установить часовой пояс только для текущей сессии в терминале, используется команда:
Изменить часовой пояс через графические утилиты
Выше мы описали способ изменения часового пояса, используя средства и утилиты командной строки. В большинстве дистрибутивах обычно есть графическая программа настройки, через которую можно с легкостью изменить часовой пояс.
Если вы работаете в Gnome, откройте Параметры системы .
Перейдите на вкладку Сведения о системе , далее вкладка Дата и время (в зависимости от версии Gnome названия пунктов могут немного отличаться). Нажмите на надпись Часовой пояс .
Откроется карта с возможностью интерактивного выбора часового пояса. Выберите мышкой нужный регион на карте.
Заключение
Мы рассмотрели как изменить часовой пояс в Linux, как определить текущий часовой пояс и просмотреть список доступных временных зон. Большинству пользователей подойдет способ с использованием графической программы для изменения Параметров системы.