给定一个ActiveSupport::TimeZone对象,我想检索一个国家名称或代码。铁轨上有什么东西可以做到这一点吗?有宝石吗?在Rails文档中,我没有看到任何东西会让我觉得提供了这种转换。我知道这里有一些歧义,但我只是在寻找对象中指定的城市的国家。
您可以使用TZInfo::Country.get('AU')
,而不是使用ActiveSupport::TimeZone
,其中AU
是国家代码。请参阅此链接从时区获取国家/地区
ActiveSupport::TimeZone
是一个与时区有关的类,它不特定于国家。因此,您无法获取国家名称或代码。
但是,ActiveSupport::TimeZone
可以返回其名称,该名称可能是也可能不是国家。例如:
> Time.zone
=> #<ActiveSupport::TimeZone:0x007fdf7d526660 @name="UTC", @utc_offset=nil, @tzinfo=#<TZInfo::TimezoneProxy: Etc/UTC>, @current_period=#<TZInfo::TimezonePeriod: nil,nil,#<TZInfo::TimezoneOffset: 0,0,UTC>>>>
> Time.zone = 'Hawaii'
> Time.zone.name
=> "Hawaii"