My environment.rb contains config.time_zone = 'UTC' If my understanding is correct, rails should assume time values coming from the database are UTC, and since config.time_zone is set to 'UTC', it should not try to convert the times.
Instead, rails is assuming that the db values are Eastern (my local zone) and is incorrectly adding four hours to convert to what it thinks is UTC. Either my understanding of how this is supposed to work is wrong, or something needs to be fixed. I created a test table in a SQL Server database with one row. The table is called events and contains an "edate" column. The value is "2009-03-30 12:00", and is a UTC time. The output from script/console is below. (results are identical to using a browser) What else do I need to do to convince rails to leave the time value alone, since it *is* a UTC value? I can get the correct value by extracting the "Time" with no zone, and then recreating a new TimeWithZone. But that can't be the best way! Loading development environment (Rails 2.3.2) >> Time.zone => #<ActiveSupport::TimeZone:0xb795cbc8 @tzinfo=nil, @utc_offset=0, @name="UTC"> >> event=Event.find(1) => #<Event id: 1, edate: "2009-03-30 12:00:00"> >> event.edate => Mon, 30 Mar 2009 16:00:00 UTC +00:00 >> zutc= ActiveSupport::TimeZone.new('UTC') => #<ActiveSupport::TimeZone:0xb795cbc8 @tzinfo=#<TZInfo::DataTimezone: Etc/UTC>, @utc_offset=0, @name="UTC"> >> correct_time = ActiveSupport::TimeWithZone.new(event.edate.localtime,zutc) => Mon, 30 Mar 2009 12:00:00 UTC +00:00 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---