How can I convert float
number to timezone?
Facebook breaks the timezone down using float.
timezone float (min: -24) (max: 24)
The person's current timezone offset from UTC
user.timezone = auth.extra.raw_info.timezone
captures a user's timezone location upon signing up via Facebook, for example timezone: -5.0
.
I want to convert this though to timezone: "Eastern Time (US & Canada)"
. A user could then adjust his timezone via <%= f.time_zone_select :timezone, ActiveSupport::TimeZone.us_zones %>
.
Potential Solution
t.float "timezone"
t.string "time_zone" # somehow turning it into a string after Facebook sets it?
You can use the
ActiveSupport::TimeZone
class pass in the float as your argument. http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html.Disclaimer: Part of the answer comes from the first part of this question, How to get timezone from facebook with omniauth?.
You will have to account for times when
user.timezone
is nil, or else it will throw errors.