Как получить код часового пояса из объекта Ruby Timezone?

Я использую Ruby 1.9.3 с часовым поясом gems 0.3.1 и tzinfo 0.3.38. Я хочу получить текущий код часового пояса для часового пояса, например. «EST» для «Америки/Нью-Йорка» прямо сейчас или «EDT» летом. Я ничего не нашел в документации, но когда я выгружаю объект со следующим кодом:

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 «правил», каждое из которых представляет собой хеш, где «имя» содержит значение, которое я ищу. Кто-нибудь знает, как мне определить, какое правило является текущим, чтобы я мог получить значение имени?


person user2836927    schedule 09.12.2013    source источник


Ответы (1)


TZInfo::Timezone.get('America/New_York').period_for_utc(Time.now).abbreviation дает вам аббр. на предоставленное время.

person Kaleidoscope    schedule 09.12.2013
comment
Спасибо! Такой подход позволит мне работать с историческими датами в хранилище данных. - person user2836927; 09.12.2013