Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Ruby时区对象检索时区代码?_Ruby_Timezone_Tzinfo - Fatal编程技术网

如何从Ruby时区对象检索时区代码?

如何从Ruby时区对象检索时区代码?,ruby,timezone,tzinfo,Ruby,Timezone,Tzinfo,我正在使用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('@','')

我正在使用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个“规则”组成的数组,每个规则都是一个散列,其中“name”包含我正在查找的值。
有人知道我应该如何确定哪个规则是最新的,这样我才能检索名称值吗?

TZInfo::Timezone.get('America/New\u York')。period\u表示utc(Time.now)。缩写为提供的时间的缩写。
TZInfo::Timezone.get('America/New\u York')。period\u表示utc(Time.now).缩写为您提供了所提供时间的缩写。

谢谢!这种方法将允许我处理数据存储中的历史日期。谢谢!这种方法允许我处理数据存储中的历史日期。
  require 'tzinfo'
  tz = TZInfo::Timezone.get('America/New_York')
  tz.strftime("%Z")
  => "EST"