2012-03-27 3 views
0

last question에서 tzinfo 보석에 액세스하는 방법을 알았습니다. 그러나 나는 그것을 나의 목적을 위해 사용하는 방법을 모른다.Ruby : tzinfo : 시간대 오프셋 및 일광 절약 정책을 포함한 다른 관할 구역의 현지 시간

매일 부룬디에있는 부줌 부라 사람에게 매일 오전 8시에 전자 메일을 보내야한다고 가정 해보십시오. 시간대와 일광 절약 시간의 조합은 매일 부줌 부라에 적용됩니다. 내 이해는 tzinfo가 정보를 "아는"것입니다. 매일 오전 8 시부 터 부줌 부라 시간 (일광 절약 시간 포함)을 UTC로 변환 할 수 있습니까?

require 'tzinfo' 
bz = TZInfo::Timezone.get('Africa/Bujumbura') 
#bujumbura_time=???? 
bujumbura_utctime=tz.local_to_utc(bujumbura_time) 

가 어떻게 그것을 부줌 부라 시간 8:00 오전 것을 반영하기 위해 "bujumbura_time"을 인코딩 할 : 내가 좋아하는 뭔가를 원하십니까?

답변

2

bujumbura_time에서 특정 시간대를 인식해야한다고 생각하지 않습니다. 대신 다음 시간대와 함께 UTC 로 변환 할 수있는 지역 시간을 만들 : UTC를 현지 시간으로 변환하기 때문에 일광 절약에 어색 할 수 있다는

require 'tzinfo' 
bz = TZInfo::Timezone.get('Africa/Bujumbura') 
bujumbura_time = Time.local(2012, 3 ,27, 8, 0, 0) 
bujumbura_utctime = bz.local_to_utc(bujumbura_time) 

주 -시 시계가 앞으로 나아갈 때, 현지 시간의 1 시간 (일반적으로)은 완전히 건너 뜁니다. 시계가 돌아 오면 현지 시간의 일부가 두 번 발생합니다. 당신은 그 상황에서 당신이하고 싶은 것을 해결해야합니다. (local_to_utc documentation에서 옵션을 설명합니다.)