入住这
1.8.7 :001 > Time.zone
=> #<ActiveSupport::TimeZone:0xb740d1b8 @tzinfo=#<TZInfo::TimezoneProxy: Etc/UTC>, @utc_offset=nil, @name="UTC", @current_period=nil>
1.8.7 :002 > Time.now
=> Fri Apr 20 13:13:53 +0530 2012
1.8.7 :003 > Time.zone.now
=> Fri, 20 Apr 2012 07:43:59 UTC +00:00
1.8.7 :004 > Time.zone = "Helsinki"
=> "Helsinki"
1.8.7 :005 > Time.zone
=> #<ActiveSupport::TimeZone:0xb70ab830 @tzinfo=#<TZInfo::TimezoneProxy: Europe/Helsinki>, @utc_offset=nil, @name="Helsinki", @current_period=nil>
1.8.7 :006 > Time.now
=> Fri Apr 20 13:14:48 +0530 2012
1.8.7 :007 > Time.zone.now
=> Fri, 20 Apr 2012 10:45:10 EEST +03:00
1.8.7 :008 > Time.zone.now.to_time.strftime("%c").to_datetime
=> Fri, 20 Apr 2012 10:47:01 +0000
1.8.7 :009 >
所以Time.zone.now.to_time.strftime("%c").to_datetime
会给你的用户的时区当前时间作为UTC
Time.now总是给您的服务器的时区的时间。 Time.zone.now在指定的时区给出时间。
感谢, 阿米特·帕特尔
如果你有来自两个不同大洲的两个用户在同一时间? – SLaks 2012-04-19 14:57:46
我相信他们会有不同的时间数据应用程序的实例。 – Andy 2012-04-19 15:02:14
错误;他们会得到两个线程。 – SLaks 2012-04-19 15:02:28