How do I change the zone offset for a time in Ruby on Rails?
ruby, ruby-on-rails
Solution
I'm using Rails 2.0 before they added the code that makes weppos solution work. Here's what I did
# Silly hack, because sometimes the input_date is in the wrong timezone
temp = input_date.to_time.to_a
temp[8] = true
temp[9] = "Eastern Daylight Time"
input_date = Time.local(*temp)
I break the time down into a 10 element array, change the timezone and then convert the array back into a time.
Problem
I have a variable foo that contains a time, lets say 4pm today, but the zone offset is wrong, i.e. it is in the wrong time zone. How do I change the time zone? When I print it I get ``` Fri Jun 26 07:00:00 UTC 2009 ``` So there is no offset, and I would like to set the offset to -4 or Eastern Standard Time. I would expect to be able to just set the offset as a property of the Time object, but that doesn't seem to be available?