将一个时区转换为另一个时区

时间:2012-02-08 05:56:58

标签: ruby datetime timezone

我正在使用Ruby。我想将UTC转换为各种时间转换。我按照here链接。

我的代码是:

class TimeFormat
  def convert_zone(to_zone)
    original_zone = ENV["TZ"]
    utc_time = dup.gmtime
    ENV["TZ"] = to_zone
    to_zone_time = utc_time.localtime
    ENV["TZ"] = original_zone
    return to_zone_time
  end
end

t = TimeFormat.new
t.convert_zone("US/Pacific")

但它显示:

undefined method `gmtime' for #<TimeFormat:0x9043388> (NoMethodError)

这里有什么问题?

2 个答案:

答案 0 :(得分:2)

您可以将班级名称更改为时间。

然后将其称为,

t = Time.new
t.convert_zone("US/Pacific")

gmtime是Time类的一种方法。

答案 1 :(得分:1)

如果在调用'convert_zone'时说“未定义的方法`gmtime'”时出错,则可能会传递一些内容而不是所需的Time对象作为参数。

以下是您可能会寻找的类似内容。 http://www.java2s.com/Code/Ruby/Time/Converttimetotimezone.htm

您可以扩展Time类并定义自己的方法。