2

すべてのタイム ゾーン tzinfo の配列を取得しようとしていますが、iOS モバイル クライアントから受信したタイム ゾーンを検証できるように、それぞれから「America/Los_Angeles」の部分のみが必要です。現在、以下を実行しています。

ActiveSupport::TimeZone.zones_map.values.collect { |z| z.tzinfo }

TZInfo::TimezoneProxy必要な情報とともにクラスを取得します。

4

3 に答える 3

3

次のコードを試してください:

ActiveSupport::TimeZone::MAPPING.values
于 2014-10-21T18:12:19.560 に答える
1

ActiveSupport::Timezonesのゾーンは、146 の「意味のある」ゾーンのサブセットに制限されていますが、どのゾーンが「意味のある」かを決定する基準を定義していません。

これを使用して別のプラットフォームからの IANA タイム ゾーン識別子を検証すると、500 を超えるものがあるため、確実に偽陰性が発生します。

代わりに、Rail の奇妙に変更されたバージョンではなく、 TZinfo Gemを直接使用してください。timezone tag wiki のRails Time Zone Identifiers のセクションも参照してください。

于 2014-10-21T19:14:53.820 に答える
0

ドキュメントでインスタンスメソッド「識別子」を見つけました - http://www.rubydoc.info/gems/tzinfo/TZInfo/TimezoneProxy#_load-class_method

だから私が必要だったのは

ActiveSupport::TimeZone.zones_map.values.collect{|z| z.tzinfo.識別子}

于 2014-10-21T18:01:48.800 に答える