2011-09-21 115 views
0

用户模型有time_zone,它存储“Pacific Time(US & Canada)”。时区到当前时间

方案: 1. CURRENT_USER居住在日本的时区 2. CURRENT_USER正在查看约翰的简历谁住在“太平洋时间(美国&加拿大)” 3.在约翰的个人资料,我需要在显示本地时间“太平洋时间(美国&加拿大)“作为上午10:01

我做了什么? ActiveSupport :: TimeZone.new(@ user.time_zone).now返回类似于2011-09-21 10:01:56 UTC

问题: 1.如何将此转换为上午10:01? 2.为什么是UTC?

请帮

回答

1

要设置时区,你需要使用

Time.zone= @user.time_zone 

您可能需要设置这个在:在application.rb

OTOH的before_filter,您可以使用use_zone方法有块

Time.use_zone(@user.time_zone) do 
    #.... This code will run as if you were in @user.time_zone 
end 
0

尝试像这样的smth,在你的用户控制器:

def show 
    @user = find(params[:id]) 
    Time.zone = @user.time_zone 
end 

要更改格式:

Time.now.strftime("at %I:%M%p") 
0

您可以使用此

Time.zone = 'Pacific Time (US & Canada)' 

获取本地时间

Time.zone.now  #=> Wed, 21 Sep 2011 02:25:08 PDT -07:00 

获得10: 00 am/pm

Time.zone.now.strftime("%I:%M %p") #=> 02:25 AM