Как правильно сделать работу с городами и часовым поясом?
Делаю сервисе записи и в нем реализую работу с несколькими городами в разных часовых поясах.
Город будет выбираться жестко, пользователь жестко привязан к городу.
Планирую вот как:
сделать поле у города поле UTC, и уже в зависимости от города выводить пользователям их время...
Какие вообще парктики и нюансы есть? Как тогда работать с форматом времени?
Ведь модерироваться будет совсем из 3другого города -- чтобы путаницы не было у менеджера со временем.
UPD: сейчас у меня время хранится в формате time, дата в формате date, при такой реализации это будет верным делом?
Может быть лучше использовать комплексный datetime, или ещё лучше хранить как без-знаковый unixtime (работать будет быстрее, а научить модели при чтении из этого поля возвращать корректный DateTime объект - не так то уж и сложно).
И я бы хранил в UTC, всё верно, и у пользователя отдельное значение - смещение от него в ту или иную сторону. Тогда от огромной кучи проблем избавишься, главное лишь чтоб на серверах (app + db) время корректно стояло - строго по UTC.
В БД следует хранить ТОЛЬКО временную метку в UTC и смещение часового для пользователя, не более.
На счет серверов - нужно чтоб они при вызове любой операции, возвращающей системное время возвращали его в UTC. И сервер, где крутится приложение, и сервер БД. В общем - всё-всё должно быть в UTC.