On 17 January 2011 05:57, Sean Tan <[email protected]> wrote:
> I'm in the process of upgrading my existing Rails 2.3.8 app to Rails
> 3.0.3.
>
> One problem that I have encountered is how to make rails 3 read/write
> date/time data into the DB in localtime.
>
> In Rails 2.3.8, commenting out the ActiveRecord timezone settings did
> the trick, however in Rails 3, that doesn't work as the default is now
> UTC.
>
> I have tried setting the config.time_zone to local timezone, but Rails 3
> still insist on saving in UTC.

If you really must have local time in the db then lie to Rails by
setting config.time_zone to UTC, this tells it that it is to assume
that timestamps are already in UTC so it will not need to change them
to get them into what it thinks is UTC.

An alternative is to manually generate UTC timestamps with the same
value as the local times you wish to save, so
timestamp = Time.utc( timestamp.year, timestamp.month, ... )

>
> Changing the date/time data in my DB is not really an option as there
> are other integrated systems that are relying on localized timezone
> data.
>
> Is there a way retain the old behavior of Rails 2.3.8?

I find it odd that it worked in 2.3.8, that version should also have
stored data in UTC

Colin

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to