Debian Squeeze не может использовать локальные часовые пояса независимо от того, что вы делаете.

Мне нужно использовать CLI, чтобы увидеть время в произвольных часовых поясах. Однако Debian не отвечает на рекомендуемое решение.

Во-первых, я установил местный часовой пояс.

dpkg-reconfigure tzdata

Затем я устанавливаю системное время.

ntpdate pool.ntp.org

Я обновляю аппаратные часы, чтобы они отражали системное время.

hwclock --systohc --utc

Теперь я слежу за этим сообщением: http://www.linuxquestions.org/questions/programming-9/display-other-timezones-in-command-line-927660/

Что говорит о том, что я могу выполнить свою задачу с помощью такой команды: TZ=UTC date && TZ=CDT date && TZ=IST date

Тем не менее, это вывод, который я получаю:

dpkg-reconfigure tzdata && ntpdate pool.ntp.org && hwclock --systohc --utc && TZ=UTC date && TZ=CDT date && TZ=IST date

Current default time zone: 'America/Chicago'
Local time is now:      Tue Apr 16 14:45:29 CDT 2013.
Universal Time is now:  Tue Apr 16 19:45:29 UTC 2013.

16 Apr 19:45:38 ntpdate[12036]: adjust time server 199.102.46.73 offset -0.036668 sec
Tue Apr 16 19:45:39 UTC 2013
Tue Apr 16 19:45:39 CDT 2013
Tue Apr 16 19:45:39 IST 2013

person Laurence Maddox    schedule 16.04.2013    source источник
comment
В будущем, пожалуйста, отформатируйте код и стенограммы сеанса в своем сообщении, чтобы строки не совпадали.   -  person Celada    schedule 17.04.2013


Ответы (1)


CDT и IST не являются допустимыми именами часовых поясов, поэтому date по умолчанию показывает вам UTC время, если вы пытаетесь использовать их в качестве своего часового пояса.

Я не уверен, какие часовые пояса вы на самом деле хотели использовать, но попробуйте пару из них. Это допустимые имена часовых поясов.

TZ=Asia/Shanghai date
TZ=America/Vancouver date
TZ=Europe/London date
person Celada    schedule 16.04.2013
comment
Как преобразовать аббревиатуру (например, CDT) во что-то, что примет дата (например, Америка/Чикаго)? Как получить часовой пояс для произвольного города? Скажем, например, что мне нужен часовой пояс для Лудхианы, Индия. Этот город не указан в /usr/share/zoneinfo. - person Laurence Maddox; 17.04.2013
comment
Вы не можете преобразовать короткие трехбуквенные сокращения часовых поясов в имена часовых поясов Олсона, потому что короткие сокращения неоднозначны. Например, America/Montreal и Australia/Sydney используют аббревиатуру EST. Что касается получения часового пояса произвольного города или получения часового пояса по широте и долготе, об этом уже много раз спрашивали и отвечали на SO. См. stackoverflow.com/questions/4669366/timezone-from-geolocation для только один пример из многих. - person Celada; 17.04.2013
comment
Спасибо за вашу помощь. Эти трехбуквенные сокращения поставили меня в тупик. Я думаю, что это описывает шаги, необходимые для автоматизации этого: stackoverflow.com/questions/55901/. В итоге я получил нужную мне информацию из Википедии: в базе данных tz она представлена ​​Азией/Калькуттой. Моя последняя команда такова: ( TZ=America/Chicago date ; TZ=Asia/Kolkata date ). Для большего количества часовых поясов я бы использовал это: for K in America/Chicago Asia/Kolkata ; do TZ=$K date ; done - person Laurence Maddox; 19.04.2013