Ответ
Misha v.3 05.01.2010 03:38
2010-01-05 01:59:36, правильно ли я ожидаю тут тоже получить 2010-01-04 20:59:36?
неправильно.
вы
одну дату сдвинули в другую временную зону (при этом, по сути, сама дата не изменилась, она представляет точно такое-же время/дату, только, грубо говоря, записанную в другой системе координат).
потом вы на основании этой даты создаёте новую дату в
локальной временной зоне сервера со сдвигом в 1 час.
вообще лично мне реализация временных зон в парсере не нравится, т.к. смысла в такой реализации я не вижу. вообще. те задачи, для которых мне нужны были временные зоны я с помощью ^roll[TZ;...] в общем виде решить не смог.
кроме того, названия временных зон server specific, т.е. при переносе сайта на другую площадку есть немаленькая вероятность, что заточенный под таймзоны код перестанет работать.
правда задач у меня было ровно три:
1. у сервера локальное время не MSK+3 (сервер в штатах), а мне хотелось, чтобы даты создавались и показывались во времени MSK+3. мне было бы удобно, чтобы я мог как-нибудь задать эту разницу во времени относительно локального времени сервера, чтобы все методы работы с датами эту разницу учитывали. (кстати, надо будет добавить это в todo :)
2. выдача данных для RSS & Co. тут хочется выводить даты в каком-нить нормальном представлении: GMT или UTC (я этого хотел ещё до того, как появился метод ^gmt-string[]). увы, когда я этого сделать не смог (а MSK меня не устраивал, т.к. далеко не все RSS агрегаторы знают про все временные зоны, и некоторых плющило). тогда я остановился на выводе дат в виде +OFFSET, без указания имени зоны.
3. разбор даты в формате RFC[2]822... в результате я это дело в общем виде не осилил и забросил :)
- сдвиг даты, Александр 04.01.2010 23:01 / 04.01.2010 23:02
- Ответ, Misha v.3 [M] 05.01.2010 03:38