您需要国家代码才能与 TZInfo 库中的 Country 类一起使用,默认情况下应该在 rails 中可用,我想知道您将如何处理具有多个时区的国家/地区,例如俄罗斯、美国、加拿大。无论如何,对于一个小国来说:
2.2.1 :001 > c = TZInfo::Country.get('MD')
=> #<TZInfo::Country: MD>
2.2.1 :002 > c.zone_identifiers
=> ["Europe/Chisinau"]
2.2.1 :003 > c.zones
=> [#<TZInfo::TimezoneProxy: Europe/Chisinau>]
2.2.1 :004 > c = TZInfo::Country.get('US')
对于更大的:
2.2.1 :004 > c = TZInfo::Country.get('US')
=> #<TZInfo::Country: US>
2.2.1 :005 > c.zone_identifiers
=> ["America/New_York", "America/Detroit", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Indiana/Indianapolis", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Vevay", "America/Chicago", "America/Indiana/Tell_City", "America/Indiana/Knox", "America/Menominee", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/North_Dakota/Beulah", "America/Denver", "America/Boise", "America/Phoenix", "America/Los_Angeles", "America/Metlakatla", "America/Anchorage", "America/Juneau", "America/Sitka", "America/Yakutat", "America/Nome", "America/Adak", "Pacific/Honolulu"]
2.2.1 :006 > c.zones
=> [#<TZInfo::TimezoneProxy: America/New_York>, #<TZInfo::TimezoneProxy: America/Detroit>, #<TZInfo::TimezoneProxy: America/Kentucky/Louisville>, #<TZInfo::TimezoneProxy: America/Kentucky/Monticello>, #<TZInfo::TimezoneProxy: America/Indiana/Indianapolis>, #<TZInfo::TimezoneProxy: America/Indiana/Vincennes>, #<TZInfo::TimezoneProxy: America/Indiana/Winamac>, #<TZInfo::TimezoneProxy: America/Indiana/Marengo>, #<TZInfo::TimezoneProxy: America/Indiana/Petersburg>, #<TZInfo::TimezoneProxy: America/Indiana/Vevay>, #<TZInfo::TimezoneProxy: America/Chicago>, #<TZInfo::TimezoneProxy: America/Indiana/Tell_City>, #<TZInfo::TimezoneProxy: America/Indiana/Knox>, #<TZInfo::TimezoneProxy: America/Menominee>, #<TZInfo::TimezoneProxy: America/North_Dakota/Center>, #<TZInfo::TimezoneProxy: America/North_Dakota/New_Salem>, #<TZInfo::TimezoneProxy: America/North_Dakota/Beulah>, #<TZInfo::TimezoneProxy: America/Denver>, #<TZInfo::TimezoneProxy: America/Boise>, #<TZInfo::TimezoneProxy: America/Phoenix>, #<TZInfo::TimezoneProxy: America/Los_Angeles>, #<TZInfo::TimezoneProxy: America/Metlakatla>, #<TZInfo::TimezoneProxy: America/Anchorage>, #<TZInfo::TimezoneProxy: America/Juneau>, #<TZInfo::TimezoneProxy: America/Sitka>, #<TZInfo::TimezoneProxy: America/Yakutat>, #<TZInfo::TimezoneProxy: America/Nome>, #<TZInfo::TimezoneProxy: America/Adak>, #<TZInfo::TimezoneProxy: Pacific/Honolulu>]