2014-10-21 3 views
2

나는 모든 표준 시간대 tzinfo의 배열을 검색하려고하는데, iOS 모바일 클라이언트로부터 수신되는 시간대를 확인할 수 있도록 각각의 "America/Los_Angeles"부분 만 필요합니다. 현재 다음을 실행 중입니다.ActiveSupport :: TimeZones.zones_map에서 tzinfo를 얻는 방법?

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

나는 필요한 정보와 함께 클래스 TZInfo::TimezoneProxy을 얻습니다.

답변

2

시도 다음 코드를 자신이있는 영역을 결정 critera 무엇으로 정의하지 않습니다하지만 ActiveSupport::Timezones에서

ActiveSupport::TimeZone::MAPPING.values 
+1

매우 늦은 응답에 대해 유감스럽게 생각합니다. 그러나 결국 time_zones = ActiveSupport :: TimeZone.zones_map.values.collect {z | z.tzinfo.identifier}. – dsieczko

+0

대답은 길어요. – dsieczko

1

구역은 146 "의미"영역의 하위 집합으로 제한됩니다 "의미있는".

다른 플랫폼에서 오는 IANA 표준 시간대 식별자를 검증하는 데이 코드를 사용하면 500 개가 넘는 잘못된 음수가 표시됩니다.

대신 Rail의 이상한 돌연변이 버전 대신 TZinfo Gem을 직접 사용하십시오. 레일 시간대 식별자에 대한 섹션도 the timezone tag wiki에서 참조하십시오.

+0

노르웨이 수도 오슬로는 "의미있는"목록에 없지만 Srednekolymsk (pop. 3525)는 그렇습니다. 매우 이상합니다. – jjg