すべてのタイム ゾーン tzinfo の配列を取得しようとしていますが、iOS モバイル クライアントから受信したタイム ゾーンを検証できるように、それぞれから「America/Los_Angeles」の部分のみが必要です。現在、以下を実行しています。
ActiveSupport::TimeZone.zones_map.values.collect { |z| z.tzinfo }
TZInfo::TimezoneProxy
必要な情報とともにクラスを取得します。
すべてのタイム ゾーン tzinfo の配列を取得しようとしていますが、iOS モバイル クライアントから受信したタイム ゾーンを検証できるように、それぞれから「America/Los_Angeles」の部分のみが必要です。現在、以下を実行しています。
ActiveSupport::TimeZone.zones_map.values.collect { |z| z.tzinfo }
TZInfo::TimezoneProxy
必要な情報とともにクラスを取得します。
次のコードを試してください:
ActiveSupport::TimeZone::MAPPING.values
ActiveSupport::Timezonesのゾーンは、146 の「意味のある」ゾーンのサブセットに制限されていますが、どのゾーンが「意味のある」かを決定する基準を定義していません。
これを使用して別のプラットフォームからの IANA タイム ゾーン識別子を検証すると、500 を超えるものがあるため、確実に偽陰性が発生します。
代わりに、Rail の奇妙に変更されたバージョンではなく、 TZinfo Gemを直接使用してください。timezone tag wiki のRails Time Zone Identifiers のセクションも参照してください。
ドキュメントでインスタンスメソッド「識別子」を見つけました - http://www.rubydoc.info/gems/tzinfo/TZInfo/TimezoneProxy#_load-class_method
だから私が必要だったのは
ActiveSupport::TimeZone.zones_map.values.collect{|z| z.tzinfo.識別子}