Я устанавливаю часовой пояс 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
cp
командой; UTC не затронут (как мы видим), но локализованное время сейчас 5:59 GMT + 6, хотя это должно быть 17:59 GMT + 6.Ответы:
Такие зоны
Etc/GMT+6
намеренно меняются местами для обратной совместимости со стандартами POSIX. Смотрите комментарии в Википедии и в этом файле из tzdb .Вы почти никогда не должны использовать эти зоны. Вместо этого вы должны использовать в полной мере с именем часового пояса , как
America/New_York
иEurope/London
или то , что подходит для вашего местоположения. Обратитесь к списку часовых поясов базы данных tz в Википедии .источник
+6
, вы устанавливаете,Etc/GMT+6
что является очень специфической записью в данных zoneinfo, что означает «6 часов к западу от GMT», что обычно используется-6
. Если вы действительно хотите,+6
то вы должны установить зону, напримерEtc/GMT-6
, или вы можете использовать именованную зону со смещением +6. Смотрите также тег часового пояса вики .