временные метки в рельсах - дата и время или временная метка UNIX?

В настоящее время я представляю проект своему профессору в университете, и ему не понравилось, что мое приложение rails использовало DATETIME для хранения временных меток в базе данных (он вообще не знает или, похоже, не любит рельсы :). Он сказал, что это приведет к проблемам из-за разных часовых поясов, и я должен сохранить его как временные метки UNIX (целые числа) в базе данных.

Теперь я полагаю, что у людей, которые проектировали рельсы, была причина хранить его так, и поскольку поля временных меток автоматически добавляются к любой миграции, я хотел спросить вас, ребята

a) если я могу изменить миграцию по умолчанию rails для использования отметки времени UNIX по умолчанию

б) о плюсах и минусах такого подхода

1
08 июля '11 в 18:47
источник поделиться
2 ответов

Мое мнение противоречит твоему профессору. Легко правильно обращаться с типами Datetime и часовыми поясами с Rails.

a) Я не уверен в изменении дефолта, но здесь есть родственный вопрос. Ruby on Rails: почему ActiveRecord использует тип "datetime" вместо "timestamp" для полей timestamp? б) Вот связанный вопрос с хорошим ответом. В Ruby on Rails, какая разница между DateTime, Timestamp, Time и Date?

1
08 июля '11 в 19:21
источник

Rails 2.2 и более поздние версии поддерживают i18n (интернационализация). Это включает обработку часовых поясов и форматирование даты в базе данных, а также просмотров. Посмотрите на направляющие рельсы для интернационализации API здесь.

В частности, вы, вероятно, будете искать помощников времени. Я бы рекомендовал, чтобы вы сохраняли формат DTCTIMES формата UTC в db, а затем использовали временные помощники, чтобы перевести его на правильное время для локали вашего конечного пользователя.

Укажите часовой пояс в файле /config/application.rb, и если вы используете правильные Time помощники, Rails просто позаботится обо всем остальном для вас.

1
08 июля '11 в 19:18
источник

Посмотрите другие вопросы по меткам или Задайте вопрос