自定义格式的输出时间(GMT而不是UTC)

时间:2011-11-11 11:29:30

标签: ruby utc gmt

我想知道如何使用ruby 1.9.2以这种格式获得时间: 我使用rails 3.1可能需要设置一些环境常量才能使其与to_s方法一起使用?

2011-11-11 15:20:01 GMT + 4

代替

Time.now.to_s # => "2011-11-11 15:20:01 +0400"

2 个答案:

答案 0 :(得分:2)

class Time
  def to_gmt
    z = gmtoff / 3600
    strftime("%F %T GMT#{:+ if z>=0}#{z}")
  end
end

puts Time.now.to_gmt
#=> 2011-11-11 06:43:59 GMT-7

答案 1 :(得分:1)

Time.now.strftime("%D %T GMT%z")\
  .gsub(/GMT([-\+]\d\d\d\d)/){"GMT#{sprintf("%+d",$1.to_i/100)}"}