2013-12-09 4 views
1

gems timezone 0.3.1 및 tzinfo 0.3.38과 함께 Ruby 1.9.3을 사용하고 있습니다. 시간대에 대한 현재 시간대 코드를 검색하려고합니다. 'EST'는 'America/New_York', 지금은 'EDT'입니다. 나는 문서에서 아무 것도 발견했습니다, 그러나 나는 다음과 같은 코드를 사용하여 객체를 덤프 때Ruby Timezone 객체에서 시간대 코드를 가져 오는 방법은 무엇입니까?

ptz = Timezone::Zone.new :zone => 'America/New_York' 
hash = {} 
ptz.instance_variables.each do |var| 
    hash[var.to_s.tr('@','')] = ptz.instance_variable_get var 
end 
puts hash.to_json 

각, "이름이"내가 값을 포함하는 해시 267 "규칙"의 배열이 찾고. 누가 현재 규칙인지 어떻게 결정해야하는지 알 수 없으므로 이름 값을 검색 할 수 있습니까?

답변

0

TZInfo::Timezone.get('America/New_York').period_for_utc(Time.now).abbreviation은 abbr. 제공되는 시간 동안.

+0

고마워요! 이 방법을 사용하면 데이터 저장소에서 과거 날짜를 처리 할 수 ​​있습니다. – user2836927

1
require 'tzinfo' 
    tz = TZInfo::Timezone.get('America/New_York') 
    tz.strftime("%Z") 
    => "EST"