2012-02-11 2 views
1

이것은 간단한 문제인 것처럼 보이지만 답변을 찾지 못하는 것 같습니다. 나는 UTC 시간 (즉, 1323481111)을 가지고 있으며이를 루비 스크립트의 DateTime 또는 TimeWithZone 객체로 변경하려고합니다. 나는 루비로 할 수있는 방법을 찾지 못했지만 ActiveSupport를 사용하여 그것을 할 수있는 방법이 있어야한다고 생각합니다.ActiveSupport를 사용하여 utc를 루비 객체로 변환

require "active_support/all" 

Time.zone.at(1323481111) 

http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html

을하지만 그것은 작동하지 않습니다 : 다음과 같이 내가 할 수있을 것을 나에게 보인다. 누구든지 utc int를 datetime 객체로 변환하는 방법을 알고 있습니까?

답변

2

정확하게 "작동하지 않는 것"은 무엇을 의미합니까? NoMethodError: undefined method 'at' for nil:NilClass과 같은 예외가 표시됩니까? 그렇다면 tzinfo 보석을 설치했는지 확인하고 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 
+0

위대한 답변 (@Michael Kohl 및 @steenslag). 나는 그들 모두를 확인할 수 있었으면 좋겠다. 그러나 ActiveSupport를 사용하여 질문을 표현한 이후로 이것은 아마도 더 좋은 대답 일 것입니다. – cwadding

1

을 ActiveSupport없이 (또는과) :

require 'date' 
DateTime.strptime("1323481111",'%s') 

당신이로 이동 한 후, UTC보다 다른 뭔가를 할 시간대를 설정하려면 @ 마이클 콜의 대답.

관련 문제