Посмотрите на это сообщение в блоге под названием: Как: 2 метода для изменения TimeZone в Linux .
Red Hat дистрибутивы
Если вы используете дистрибутив, такой как Red Hat, тогда ваш подход к копированию файла будет в основном приемлемым.
ПРИМЕЧАНИЕ. Если вы ищете решение, не зависящее от дистрибутивов, оно также работает в Debian, хотя ниже представлены более простые подходы, если вам нужно иметь дело только с машинами Debian.
$ ls /usr/share/zoneinfo/
Africa/ CET Etc/ Hongkong Kwajalein Pacific/ ROK zone.tab
America/ Chile/ Europe/ HST Libya Poland Singapore Zulu
Antarctica/ CST6CDT GB Iceland MET Portugal Turkey
Arctic/ Cuba GB-Eire Indian/ Mexico/ posix/ UCT
Asia/ EET GMT Iran MST posixrules Universal
Atlantic/ Egypt GMT0 iso3166.tab MST7MDT PRC US/
Australia/ Eire GMT-0 Israel Navajo PST8PDT UTC
Brazil/ EST GMT+0 Jamaica NZ right/ WET
Canada/ EST5EDT Greenwich Japan NZ-CHAT ROC W-SU
Я бы порекомендовал ссылаться на него, а не копировать.
$ sudo unlink /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime
Теперь дата показывает другой часовой пояс:
$ date -u
Thu Jan 23 05:40:31 UTC 2014
$ date
Wed Jan 22 23:40:38 GMT+6 2014
Ubuntu / Debian Distros
Чтобы изменить часовой пояс в любом из этих дистрибутивов, вы можете использовать эту команду:
$ sudo dpkg-reconfigure tzdata
$ sudo dpkg-reconfigure tzdata
Current default time zone: 'Etc/GMT-6'
Local time is now: Thu Jan 23 11:52:16 GMT-6 2014.
Universal Time is now: Thu Jan 23 05:52:16 UTC 2014.
Теперь, когда мы проверим это:
$ date -u
Thu Jan 23 05:53:32 UTC 2014
$ date
Thu Jan 23 11:53:33 GMT-6 2014
ПРИМЕЧАНИЕ. В Ubuntu 14.04 и более поздних версиях также есть эта опция с помощью одной команды (источник: Ask Ubuntu - установка часового пояса с терминала ):
$ sudo timedatectl set-timezone Etc/GMT-6
Об использовании "Etc / GMT + 6"
выдержка из ответа @ MattJohnson на SO
Такие зоны Etc/GMT+6
намеренно меняются местами для обратной совместимости со стандартами POSIX. Смотрите комментарии в этом файле .
Вы почти никогда не должны использовать эти зоны. Вместо этого вы должны использовать в полной мере с именем часового пояса , как America/New_York
и Europe/London
или то , что подходит для вашего местоположения. Обратитесь к списку здесь .
echo $TZ
выдает что-то, кроме пустой строки)? Также может быть лучше создать символическую ссылку/etc/localtime
вместо того, чтобы копировать фактический файл (таким образом, вы будете в безопасности, если данные zoneinfo изменятся, что, скорее всего, никогда не изменится).