В application.rb
говорится:
Установите Time.zone по умолчанию для указанной зоны и сделайте активную запись автоматически конвертировать в эту зону. Запустите "rake -D time" для списка задач для поиска имен часовых поясов. Значение по умолчанию - UTC.
Но установка config.time_zone = 'Central Time (US & Canada)'
или config.time_zone = 'Eastern Time (US & Canada)'
не влияет - поле created_at
в модели сохраняется в UTC.
В соответствии с этот ответ railsforum:
config.time_zone просто позволяет рельсам знать что ваш сервер настроен на это часовой пояс, поэтому, когда он записывает даты база данных, которую он может правильно конвертировать это к UTC.
Если это так, то почему, когда мое системное время Pacific Time (US & Canada)
и config.time_zone = 'Central Time (US & Canada)'
или config.time_zone = 'Eastern Time (US & Canada)'
, время created_at
- это правильный UTC? Если это неверно?!
Потому что, если время PST равно 8 PM, тогда EST составляет 11 PM, а UTC - 4 часа.
Предполагая, что Rails делает Time.now
, это будет 8 вечера. И мы сказали Rails, что сервер находится в EST. Таким образом, 8 вечера будут временем EST в отношении Rails, а UTC будет равен 5 AM UTC, что было бы неверным (поскольку фактическое время составляет 8 PM PST/11 PM EST, то есть 4 часа по UTC)
Что здесь происходит?