Ruby on rails 时区到当前时间
用户模型有时区,其中存储有“太平洋时间(美国和加拿大)” 情景: 1.当前用户居住在日本时区 2.当前用户正在查看居住在“太平洋时间(美国和加拿大)”的John的个人资料 3.在John的个人资料中,我需要显示当地时间上午10:01的“太平洋时间(美国和加拿大)” 我做了什么? ActiveSupport::TimeZone.new(@user.time_zone)。现在返回类似于2011-09-21 10:01:56 UTC的值 问题: 1.如何将此转换为上午10:01? 2.为什么是UTCRuby on rails 时区到当前时间,ruby-on-rails,ruby,timezone,Ruby On Rails,Ruby,Timezone,用户模型有时区,其中存储有“太平洋时间(美国和加拿大)” 情景: 1.当前用户居住在日本时区 2.当前用户正在查看居住在“太平洋时间(美国和加拿大)”的John的个人资料 3.在John的个人资料中,我需要显示当地时间上午10:01的“太平洋时间(美国和加拿大)” 我做了什么? ActiveSupport::TimeZone.new(@user.time_zone)。现在返回类似于2011-09-21 10:01:56 UTC的值 问题: 1.如何将此转换为上午10:01? 2.为什么是UTC
请帮助设置时区,您需要使用
Time.zone= @user.time_zone
您可能需要在application.rb中的:before_filter中设置此选项
OTOH,您可以对块使用use\u zone
方法
Time.use_zone(@user.time_zone) do
#.... This code will run as if you were in @user.time_zone
end
在您的用户控制器中,尝试如下smth:
def show
@user = find(params[:id])
Time.zone = @user.time_zone
end
要更改格式,请执行以下操作:
Time.now.strftime("at %I:%M%p")
你可以用这个
Time.zone = 'Pacific Time (US & Canada)'
获取当地时间
Time.zone.now #=> Wed, 21 Sep 2011 02:25:08 PDT -07:00
上午10点到下午10点
Time.zone.now.strftime("%I:%M %p") #=> 02:25 AM
处理时间的理想方法是在后端以UTC格式保存数据,这将简化转换过程
正如Chandra Patni上面提到的,您可以使用这些方法进行转换
要以格式化字符串显示时间对象,可以使用rails strftime方法