Здравствуйте, c-smile, Вы писали:
CS>Это я к тому что даже "просто дата" должна в общем случае храниться в системе с timezone.
1. Обычное правило — дата должна храниться в UTC. Преобразования в локальную делаются "на клиенте" — там, где есть информация о географии. Т.е. когда я ввожу в систему дату "завтра в 8 утра", она конвертируется из моей локальной зоны и на сервере существует в UTC. При показе клиенту она конвертируется в его TZ, и запросто может оказаться 6ю вечера.
2. Два исключения:
— искусственная привязка к TZ. Например, если у меня еженедельный митинг назначен на 8:00 по времени Сиэтла, то я ожидаю, что он будет а 8:00 и зимой, и летом. Т.е. "абсолютное" время начала, по UTC, будет прыгать каждый раз при переходе с PST на PDT и обратно. Это заметно тем участникам, кто живёт по локальному времени с другими правилами Daylight Savings (например, всем россиянам). Если тот же митинг привяжу к времени Новосибирска (1:00), то он будет "прыгать" для участников из Сиэтла. Привязывать его к UTC не имеет смысла, т.к. тогда он будет "прыгать" для большинства участников.
— относительные времена. Скажем, будильник можно трактовать как регулярное ежедневное событие, но оно всегда привязано к локальному часовому поясу, и перемещается вместе со мной. Т.е. если у меня стоит будильник на 8 утра, то я ожидаю и в командировке просыпаться в 8 утра, а не в 6 вечера.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.