使用ActiveSupport将utc转换为ruby对象

使用ActiveSupport将utc转换为ruby对象,ruby,activeresource,Ruby,Activeresource,这似乎是一个简单的问题,但我似乎找不到答案。我有一个UTC时间(即1323481111),我想在ruby脚本中将其更改为DateTime或TimeWithZone对象。我还没有找到一种只使用ruby的方法,但我相信应该有一种使用ActiveSupport的方法。在我看来,我应该能够做到以下几点: require "active_support/all" Time.zone.at(1323481111) 但这似乎不起作用。有人知道如何将utc int转换为datetime对象吗?什么是“似乎

这似乎是一个简单的问题,但我似乎找不到答案。我有一个UTC时间(即1323481111),我想在ruby脚本中将其更改为DateTime或TimeWithZone对象。我还没有找到一种只使用ruby的方法,但我相信应该有一种使用ActiveSupport的方法。在我看来,我应该能够做到以下几点:

require "active_support/all"

Time.zone.at(1323481111)

但这似乎不起作用。有人知道如何将utc int转换为datetime对象吗?

什么是“似乎不起作用”呢?对于nil:NilClass,是否会出现类似于
NoMethodError:undefined方法'at'的异常?如果是,请确保已安装
tzinfo
gem,并且还需要
tzinfo
。然后设置时区,你就可以开始了:

>> Time.zone.at(1323481111)
NoMethodError: undefined method 'at' for nil:NilClass
[..]
>> require 'tzinfo' #=> true
>> Time.zone = "Vienna" #=> "Vienna"
>> Time.zone.at(1323481111) #=> Sat, 10 Dec 2011 02:38:31 CET 01:00
没有(或有)ActiveSupport:

require 'date'
DateTime.strptime("1323481111",'%s')  
如果您想将时区设置为UTC以外的其他值,请选择@Michael Kohl的答案。

这两个答案都很好(@Michael Kohl和@steenslag)。我希望我能检查一下它们。但由于我使用ActiveSupport来表达这个问题,这可能是更好的答案。