[RostovOnDon.pm] BadExample.pm

Павел Кудинов kudinov.pavel на gmail.com
Ср Авг 6 07:49:11 PDT 2008


Много возился с часовыми поясами, пока делал КиноМедиа.

Формулировка некорректна. Из заданного пояса в GMT перевести нельзя, т.к. в
одном и том же поясе существуют разные исчисления времени (переход на летнее
в разные дни, вообще отсутствие перехода, переход не на час а больше, если
дата "историческая" - нужно "вспомнить" - практиковался ли тогда переход).

В Unix применяются localtime - бинарники, в количестве равном количеству
местностей (обычно городов). Задача бинарника - знать как в данной местности
велось летоисчисление на всём обозримом историческом периоде. Т.е. localtime
MSK будет учитывать все изменения, которые только происходили. А, например,
localtime Томска (если не путаю) - будет учитывать, то что в 2005 (если не
путаю) году город вообще сменил свой часовой пояс!

Соответственно, дата должна переводиться из локали (местности) посредствам
"местной" localtime утилиты, а не "из часового пояса".

Кстати, команда localtime в большинстве систем - симлинк на один из
localtime'ов, которые есть в коллекции дистрибутива (либо просто копия
одного файла из коллекции).


С Уважением,
Павел Кудинов

-----Original Message-----
From: rostovondon-pm-bounces+kudinov.pavel=gmail.com на pm.org
[mailto:rostovondon-pm-bounces+kudinov.pavel=gmail.com на pm.org] On Behalf Of
Andrey Alakozov
Sent: Wednesday, August 06, 2008 6:23 PM
To: Rostov-on-Don Perl Mongers
Subject: [RostovOnDon.pm] BadExample.pm

Привет,

Искал сегодня модуль для работы с часовыми поясами, наткнулся на 
забавную штуку. Автор обещает метр пива (по вертикали) или $100 тому, 
кто умудрится это выполнить:

http://search.cpan.org/src/ADAMK/Acme-BadExample-1.00/lib/Acme/BadExample.pm

Кстати, задачка по работе с часовыми поясами (перевести дату время из 
заданного пояса в GMT с учетом летнего времени) оказалась не такой уж 
простой. Date::Manip именно с ней не справляется: 
http://search.cpan.org/~sbeck/Date-Manip-5.54/lib/Date/Manip.pod#KNOWN_BUGS

В итоге, сделал через POSIX::tzset/localtime/gmtime.

-- 
Andrey
_______________________________________________
RostovOnDon-pm mailing list
RostovOnDon-pm на pm.org
http://mail.pm.org/mailman/listinfo/rostovondon-pm


Подробная информация о списке рассылки RostovOnDon-pm