Настройка часового пояса в Linux [закрыта]

Я устанавливаю часовой пояс на 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
119 голосов | спросил user3184706 23 Jam1000000amThu, 23 Jan 2014 08:36:14 +040014 2014, 08:36:14

3 ответа


210

Взгляните на это сообщение в блоге: Как сделать: 2 Способы изменения TimeZone в Linux .

Дистрибуты Red Hat

Если вы используете дистрибутив, например Red Hat, ваш подход к копированию файла будет в основном приемлемым.

$ 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

    ss # 1

$ 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»

выдержка из ответ Матт-Джонсона на SO

  

Зоны, подобные Etc/GMT+6, намеренно изменяются для обратной совместимости с стандартами POSIX. См. Комментарии в этом файле .

     

Вам почти не нужно использовать эти зоны. Вместо этого вы должны использовать полностью названный часовой пояс, например America/New_York или Europe/London или что-то подходящее для вашего местоположения. Обратитесь к списку здесь .

ответил slm 23 Jam1000000amThu, 23 Jan 2014 09:52:25 +040014 2014, 09:52:25
21

Вот как я это делаю в Ubuntu. Просто замените Asia/Tokyo на свой часовой пояс.

echo 'Asia/Tokyo' | sudo tee /etc/timezone

sudo dpkg-reconfigure -f noninteractive tzdata

В tzdata есть ошибка : некоторые значения нормализуются с помощью dpkg-reconfigure:

echo 'US/Central' >/etc/timezone
dpkg-reconfigure -f noninteractive tzdata
# Current default time zone: 'America/Chicago'

echo 'US/Eastern' >/etc/timezone
apt-get install --reinstall tzdata
# Current default time zone: 'America/New_York'
ответил user241 23 Jpm1000000pmThu, 23 Jan 2014 12:48:51 +040014 2014, 12:48:51
11

команда tzselect предназначена для того, чтобы делать то, что вы хотите

ответил SHW 23 Jpm1000000pmThu, 23 Jan 2014 12:03:37 +040014 2014, 12:03:37

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132