How do I change my timezone to UTC/GMT?
Any idea how I change from IST to GMT?
To switch to UTC, simply execute sudo dpkg-reconfigure tzdata , scroll to the bottom of the Continents list and select Etc or None of the above ; in the second list, select UTC . If you prefer GMT instead of UTC, it’s just above UTC in that list. 🙂
After I did what you wrote above, and changed the time zone, my server is still having the same wrong time, do I need to restart the system, or what?
From the command line in Ubuntu, the following link provides the trivial 1-line command: askubuntu.com/a/524362/182454
Simplicity! (KISS) Love it, Thanks! On a minimal Server install the other time Zones are not available, just UTC, so installing sudo apt install tzdata is a MUST!
sudo timedatectl set-timezone UTC
Will change your timezone to UTC system wide.
You can do timedatectl list-timezones to see all the available timezones.
Zones like Etc/GMT+6 are intentionally reversed for backwards compatibility with POSIX standards. See the comments in this file.
You should almost never need to use these zones. Instead you should be using a fully named time zone like America/New_York or Europe/London or whatever is appropriate for your location. Refer to the list here.
In the old Un*x style (SunOS, HPUX. ), you can do:
ln -fs /usr/share/zoneinfo/UTC /etc/localtime
Check the contents of /usr/share/zoneinfo to get the timezone you want/need.
For instance, Irish Summer Time (IST) can be defined as
-rw-r--r-- 1 root root 3661 Mar 13 22:18 /usr/share/zoneinfo/posix/Eire
lrwxrwxrwx 1 root root 13 Mar 13 22:18 /usr/share/zoneinfo/Europe/Dublin -> ../posix/Eire
However, the most important is to use a proper clock reference and a ntp daemon (openntpd for instance), as timezone is only used for displaying/converting the time to strings, not to store it (whatever the timezone, difference to 01/01/1970 is everywhere the same on Earth).
I can use this to change UTC to Asia/Kolkatta with.. sudo rm /etc/localtime (i had already this file so couldn’t create symlink with next command, so i deleted it first), sudo ln -s /usr/share/zoneinfo/Asia/Kolkata /etc/localtime . I think this seems to be a general solution.
Updated for 14.04 to present
View Time and Date Status:
$ timedatectl status Local time: Sun 2018-07-29 15:26:03 BST Universal time: Sun 2018-07-29 14:26:03 UTC RTC time: Sun 2018-07-29 14:26:03 Time zone: Europe/London (BST, +0100) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no
View List of Timezones:
Listed Timezones (425)
$ timedatectl list-timezones Africa/Abidjan Africa/Accra Africa/Addis_Ababa . Pacific/Tongatapu Pacific/Wake Pacific/Wallis UTC
Set Timezone to UTC:
$ timedatectl set-timezone UTC
View Time and Date Status:
$ timedatectl status Local time: Sun 2018-07-29 14:46:27 UTC Universal time: Sun 2018-07-29 14:46:27 UTC RTC time: Sun 2018-07-29 14:46:27 Time zone: UTC (UTC, +0000) System clock synchronized: yes systemd-timesyncd.service active: yes RTC in local TZ: no*
Как изменить часовой пояс Linux
Мы очень часто пользуемся временем в Linux, начиная от простой задачи узнать сколько сейчас времени, до более сложной — посмотреть логи или узнать когда произошло то или иное событие в системе. Все завязано на времени, поэтому очень важно, чтобы часы шли правильно.
Наша планета разделена на часовые пояса, это было сделано с одной простой целью, чтобы время в любой точке планеты соответствовало солнечному времени. Время между этими зонами отличается на час и всего таких поясов — 24, за эталон взято время по нулевому, Гринвичскому меридиану.
Поэтому в определенный момент время в разных участках планеты будет отличаться на час. В этой небольшой статье мы рассмотрим как изменить часовой пояс Linux, чтобы операционная система правильно работала со временем и могла правильно его синхронизировать через интернет.
Как работает время в Linux?
Операционная система Linux хранит и обрабатывает системное время в специальном Unix формате — количество секунд прошедших с полуночи первого января 1970 года. Эта дата считается началом эпохи Unix. И используется не ваше локальное время, а время по гринвичскому меридиану.
Для преобразования времени по Гринвичу в региональное время используется часовой пояс. Это преобразование выполняется для каждого пользователя. Это необходимо, чтобы каждый пользователь мог настроить для себя правильное по его временной зоне время. Такое поведение просто необходимо на серверах, когда на одной машине могут работать люди из разных частей мира.
По умолчанию в системе может быть установлен неправильный часовой пояс, это приведет к путанице в логах событий, да и другим трудностям. Но все это легко исправить. Дальше мы рассмотрим несколько способов изменить часовой пояс Linux.
Настройка часового пояса в linux
1. Ссылка /etc/localtime
Наиболее популярный и поддерживаемый в большинстве дистрибутивов способ установки часового пояса для всех пользователей — с помощью символической ссылки /etc/localtime на файл нужного часового пояса. Список доступных часовых поясов можно посмотреть командой:
Сначала создайте резервную копию текущего часового пояса:
cp /etc/localtime /etc/localtime.bak
Для создания символической ссылки используйте команду ln -sf. Файл зоны нужно выбрать из доступных в системе. Например, мой часовой пояс — Украина, Киев, для установки будет использоваться следующая команда:
ln -sf /usr/share/zoneinfo/Europe/Kiev /etc/localtime
Теперь можете проверить текущее системное время с помощью утилиты date:
Если у вас установлена утилита rdate можно синхронизировать время с сетью:
sudo rdate -s time-a.nist.gov
Осталось только синхронизировать ваши аппаратные часы с новыми настройками, для этого выполните команду:
Если нужно изменить часовой пояс только для определенной программы или скрипта, просто измените для нее переменную окружения TZ, например:
Эта настройка сохраняется только для текущего сеанса командной оболочки. Чтобы сменить часовой пояс linux для определенного пользователя тоже нужно использовать переменную среды TZ. Только ее нужно добавить в файл ~/.environment. Этот файл читается по умолчанию при входе в систему, а значит переменная будет доступна всем программам:
Готово, теперь вы знаете как выполняется настройка часового пояса linux для определенного пользователя.
2. Настройка с помощью tzdata
Если вы не хотите использовать описанный выше способ, можно воспользоваться специальными утилитами. Вот только в разных дистрибутивах используются свои утилиты. Рассмотрим варианты для самых популярных дистрибутивов.
В большинстве случаев вы увидите подобное диалоговое окно:
Здесь просто нужно выбрать нужный часовой пояс и нажать кнопку Enter. После этого для окончательного применения настроек нужно будет перезагрузить систему.
3. Настройка с помощью systemd
В systemd есть своя утилита для настройки даты и часового пояса. Чтобы узнать текущее состояние выполните:
Для просмотра всех доступных временных зон выполните такую команду:
А для установки нужного часового пояса используйте команду set-timezone, например, тот же Europe/Kiev:
sudo timedatectl set-timezone Europe/Kiev
4. Настройка часового пояса в GUI
В дистрибутиве Ubuntu и других, использующих Gnome, настройка часового пояса Linux может быть выполнена прямо в параметрах системы. Для этого выберите пункт Сведения о системе, затем Дата и время, выберите свое местоположение на карте, или наберите название для поиска в поле ввода:
В KDE аналогично можно установить часовой пояс в настройках системы. Запустите утилиту настроек, откройте пункт Локализация, перейдите в раздел Дата и время, а затем откройте вкладку Часовой пояс:
Остается выбрать часовой пояс в списке и нажать кнопку Применить. Здесь уже изменения должны проявиться моментально.
Выводы
Теперь вы знаете как выполняется установка часового пояса в linux и сможете настроить не только свой домашний компьютер но и сервер с множеством пользователей, которым нужен отдельный часовой пояс для правильного местного времени. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение видео, в котором подробно рассказано, что такое часовые пояса и зачем они нужны:
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.