我试图检索所有时区tzinfo的数组,但我只需要" America / Los_Angeles"从每个部分开始,我可以验证从iOS移动客户端收到的时区。目前运行以下内容:
ActiveSupport::TimeZone.zones_map.values.collect { |z| z.tzinfo }
我得到了课程TZInfo::TimezoneProxy
以及我需要的信息。
答案 0 :(得分:2)
请尝试以下代码:
ActiveSupport::TimeZone::MAPPING.values
答案 1 :(得分:1)
ActiveSupport::Timezones中的区域限制为146"有意义的"区域,虽然他们没有定义什么标准,但他们确定哪些区域是有意义的"。
如果您使用它来验证来自其他平台的IANA时区标识符,您肯定会有误报,因为其中有超过500个。
相反,请直接使用TZinfo Gem,而不是使用Rail的奇怪变异版本。另请参阅the timezone tag wiki中有关Rails时区标识符的部分。
答案 2 :(得分:0)
找到实例方法"标识符"在文档中 - http://www.rubydoc.info/gems/tzinfo/TZInfo/TimezoneProxy#_load-class_method
所以我需要的只是
的ActiveSupport :: TimeZone.zones_map.values.collect {| Z | z.tzinfo.identifier}