新手问题 Rails 时区转化问题

zlx_star · 2012年07月30日 · 最后由 goodboyRyan 回复于 2012年08月29日 · 5260 次阅读

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

如下解法过滤:

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

请问大家是怎么做的?

time.in_time_zone

#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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号