Вот список понятий и вещей, которые могут вам помочь:
config.time_zone
не устанавливает «Время сервера», которое обычно контролируется вашей операционной системой.
Rails всегда хранит ваши даты в формате UTC в базе данных (если вы не изменили другую настройку).
Time.now
возвращает местное время для вашего компьютера в вашем часовом поясе, а также смещение местного часового пояса от вашей операционной системы, что означает Ruby, и, следовательно, Rails знает, как преобразовать локальное время в UTC. Вы можете попробовать это, используя irb
напрямую, поэтому библиотеки Rails не загружаются:
ctcherry$ irb
>> Time.now
=> Mon Feb 21 20:53:14 -0800 2011
>>
Если установлено config.time_zone
или Time.zone
, например, для EST, Rails ожидает, что если вы установите атрибут datetime, который вы подразумеваете для этого времени и даты, в указанном часовом поясе, в данном случае EST. Вот почему вы устанавливаете Time.zone равным вашему часовому поясу для конечных пользователей, чтобы они могли использовать свое местное время и даты, и вы можете передавать их непосредственно в ваши модели ActiveRecord, а Rails может преобразовать его в UTC для хранения в базе данных.
Помогает ли это вообще?