我正在尝试将UTC时间转换为用户本地时间。对于本地时区,如果值为:
user_id time_zone
23 +05:30
25 +10:00
这是足够的信息吗?我怎么能用这个转换。在文档中,我能找到的就是这种方法。
Time.now.in_time_zone('Eastern Time (US & Canada)')
但我没有。或者我应该使用+10:00
获取此Eastern Time (US & Canada)
我正试图在用户的上午10点触发推送通知。
答案 0 :(得分:2)
%w|+05:30 +10:00|.map do |time_zone|
hours, mins = time_zone.split(':').map(&:to_i).map(&:abs)
sign = time_zone[0] == '-' ? -1 : 1
Time.now.in_time_zone(ActiveSupport::TimeZone[(hours + 1.0 * mins / 60]) * sign)
end
#⇒ [Wed, 06 Jul 2016 12:54:10 IST +05:30, Wed, 06 Jul 2016 17:24:10 AEST +10:00]