Timezone issue with legacy data stored in Eastern time


I've Googled and searched for this for many hours now and couldn't
find an answer although I did find a lot about timezones and rails.

Specifically I'm attaching a basic Rails CRUD frontend onto a legacy
database. The datetime fields in the database are stored as Eastern
Standard Time. There is a lot of legacy code that uses this database
and is expecting to get back times in EST, so I can't change them to

Is there a way in Rails to tell ActiveRecord to use Eastern for
storing the datetime fields?

I've tried a number of combinations for config.time_zone and
config.active_record.default_timezone. FYI, rake time:zones:local
returns * UTC -06:00 * Central Time (US & Canada).

Any ideas would be greatly appreciated.


You could use filters to offset the times by six hours on save and read.

Alternatively you could tell rails that it is working in UTC then
local and UTC times will be the same. If all your times are actually
then in EST all will be well. Just don't let on to rails that you are
lying to it. You might have to fiddle a bit if you do Time.now

There may well be better ways though.



You could use “Eastern Time (US & Canada)” as your timezone? Like this:

config.time_zone = ‘Eastern Time (US & Canada)’

Would this do the trick?



You could use "Eastern Time (US & Canada)" as your timezone? Like this:

config.time_zone = 'Eastern Time (US & Canada)'

Would this do the trick?

No, because it expects the times in the db to be in UTC and will
convert them (wrongly) to EST on reading and writing.