【问题标题】:Rails Conversion from ActiveSupport::TimeZone to Country从 ActiveSupport::TimeZone 到 Country 的 Rails 转换
【发布时间】:2014-10-02 15:25:07
【问题描述】:

给定一个 ActiveSupport::TimeZone 对象,我想检索一个国家名称或代码。有什么内置的东西可以做到这一点吗?有什么宝石吗?我在 Rails 文档中没有看到任何提供这种转换的东西。我知道这里有一些歧义,但我只是在寻找对象中指定的城市所在的国家/地区。

【问题讨论】:

    标签: ruby-on-rails timezone


    【解决方案1】:

    您可以使用TZInfo::Country.get('AU'),而不是使用ActiveSupport::TimeZone,其中AU 是国家代码。 参考这个链接get country from time zone

    【讨论】:

      【解决方案2】:

      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"
      

      【讨论】:

      • 感谢您的建议。不过,这并不是我想要的。我最终做的是将时区和国家/地区的选择分开,并使用countries gem 进行国家/地区选择。
      • 酷。希望这个答案有点帮助:)
      猜你喜欢
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-04
      • 2012-10-08
      • 1970-01-01
      • 2012-01-21
      • 2014-04-26
      相关资源
      最近更新 更多