新手问题 Rails 时区转化问题

zlx_star · July 30, 2012 · Last by goodboyRyan replied at August 29, 2012 · 5262 hits

现在我有个 UTC 的时间,要求转化为 Beijing 时间。

如下解法过滤:

time # UTC time 是 Time 或者 ActiveSupport::TimeWithZone 对象
#=> 该方法只是转化了时间,没有更改时区。
8.hours.since time   
#=> 该方法依赖于本地时区是北京,而我的 case 不满足
time.getlocal   或者 time.localtime   

请问大家是怎么做的?

time.in_time_zone

同 ls

#1 楼 @mimosa #2 楼 @jjym 非常感谢,这个方法正好,他需要的参数是什么?比如我需要得到北京时间或者纽约时间

#3 楼 @zlx_star in_time_zone(zone = ::Time.zone) Returns the simultaneous time in Time.zone.

Time.zone = 'Hawaii' # => 'Hawaii' DateTime.new(2000).in_time_zone # => Fri, 31 Dec 1999 14:00:00 HST -10:00 This method is similar to Time#localtime, except that it uses Time.zone as the local zone instead of the operating system’s time zone.

You can also pass in a TimeZone instance or string that identifies a TimeZone as an argument, and the conversion will be based on that zone instead of Time.zone.

DateTime.new(2000).in_time_zone('Alaska') # => Fri, 31 Dec 1999 15:00:00 AKST -09:00

确实很好

You need to Sign in before reply, if you don't have an account, please Sign up first.