Я устанавливаю часовой пояс GMT + 6 на моем компьютере с Linux, скопировав файл zoneinfo /etc/localtime
, но date
команда все еще показывает время как UTCtime-6
. Может ли кто-нибудь объяснить мне это поведение?
Я предполагаю, что date
команда должна отображать UTCtime+6
время. Вот шаги, за которыми я следую:
date
Wed Jan 22 17:29:01 IST 2014
date -u
Wed Jan 22 11:59:01 UTC 2014
cp /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime
date
Wed Jan 22 05:59:21 GMT+6 2014
date -u
Wed Jan 22 11:59:01 UTC 2014
echo $TZ
выдает что-то, кроме пустой строки)? Также может быть лучше создать символическую ссылку/etc/localtime
вместо того, чтобы копировать фактический файл (таким образом, вы будете в безопасности, если данные zoneinfo изменятся, что, скорее всего, никогда не изменится).Ответы:
Посмотрите на это сообщение в блоге под названием: Как: 2 метода для изменения TimeZone в Linux .
Red Hat дистрибутивы
Если вы используете дистрибутив, такой как Red Hat, тогда ваш подход к копированию файла будет в основном приемлемым.
ПРИМЕЧАНИЕ. Если вы ищете решение, не зависящее от дистрибутивов, оно также работает в Debian, хотя ниже представлены более простые подходы, если вам нужно иметь дело только с машинами Debian.
Я бы порекомендовал ссылаться на него, а не копировать.
Теперь дата показывает другой часовой пояс:
Ubuntu / Debian Distros
Чтобы изменить часовой пояс в любом из этих дистрибутивов, вы можете использовать эту команду:
Теперь, когда мы проверим это:
ПРИМЕЧАНИЕ. В Ubuntu 14.04 и более поздних версиях также есть эта опция с помощью одной команды (источник: Ask Ubuntu - установка часового пояса с терминала ):
Об использовании "Etc / GMT + 6"
выдержка из ответа @ MattJohnson на SO
источник
tzdata
иначе файлы/usr/share/zoneinfo
не будут существовать.timedatectl
работает для SLES 12 тоже.Вот как я это делаю в Ubuntu. Просто замените
Asia/Tokyo
свой часовой пояс.echo 'Asia/Tokyo' | sudo tee /etc/timezone
sudo dpkg-reconfigure -f noninteractive tzdata
Существует ошибка в
tzdata
: определенные значения нормализуются с помощьюdpkg-reconfigure
:источник
Команда tzselect создана, чтобы делать то, что вы хотите.
источник
TZ
переменную для вашего местного часового пояса - например, для America / Los_Angeles -export TZ=`printf "2\n49\n21\n1\n" | tzselect 2>&1 | tail -1`
. Вы можете поместить эту строку в ваш .profile, as
tzselect`, если вы хотите запустить его по подсказке.