My rails 2.3 app is interpreting times retrieved from the database as local (in my case, Eastern) instead of UTC. 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.
environment.rb contains config.time_zone = 'UTC' The output from script/console is below. (results are identical to using a browser) It looks like rails is assuming the database value is really a local time, and it adds four hours to get UTC. But that is wrong, since the time is already UTC. 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 -~----------~----~----~----~------~----~------~--~---