Этот вопрос имеет немного религиозного чувства к нему, но я собираюсь ответить на него, основываясь на моем личном опыте.
Всегда храните даты в однозначной форме. Хранение даты в формате UTC является в значительной степени стандартом в этом отношении.
Преимущества:
- Вы можете делать простые математические операции с датой и временем в базе данных без необходимости их преобразования.
- Вы можете настроить отображение дат на уровне представления
- Веб-приложения могут использовать немного JavaScript для отображения местного времени
Недостатки:
- Вам необходимо преобразовать все время в некоторое «местное» время на дисплее
- Местное время <-> Преобразование UTC влечет за собой небольшой штраф за обработку
Можете ли вы заставить рельсы делать что-то другое? Возможно, но я никогда не пытался, так как это было слишком много работы, чтобы бороться с тем, что ИМХО было разумным дизайном.
Имеет ли смысл использовать UTC в смысле «просто используй мой часовой пояс»? Да. Ваш сервер может быть в Калифорнии, ваши пользователи в Нью-Йорке, и кто решает, какое местное время в этом случае. Сервер? Пользователи? Майк, кто случайно оказался в Лондоне на неделе в командировке? В этом случае какой часовой пояс вы используете?