2012-04-30 2 views
0

iOS 5 (시뮬레이터 및 장치)에서 시간대 ICT로 날짜 문자열을 구문 분석하려고하면 (null)이 반환됩니다. 하나의 이상한 점은 iOS4.3에서 잘 작동하는 데 사용되는 시간대입니다. NSDateFormatter가 ICT TimeZone에서 작동하지 않는 이유

NSString *inputDateStr = @"Fri, 06 Apr 2012 13:00:00 ICT"; 
NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss zzz"]; 
NSDate *inputDate = [df dateFromString:inputDateStr]; 
NSLog(@"--- INPUT %@ -> %@ ---",inputDateStr, inputDate); 

--- INPUT Fri, 06 Apr 2012 13:00:00 ICT -> (null) ---

하지만 PST 같은 다른 시간대를 시도 할 때, 작동!?

NSString *inputDateStr = @"Fri, 06 Apr 2012 13:00:00 PST"; 

--- INPUT Fri, 06 Apr 2012 13:00:00 PST -> 2012-04-06 21:00:00 +0000 ---

난 [NSTimeZone abbreviationDictionary]를 인쇄 여전히 거기에 ICT를 참조. 따라서이 시간대는 여전히 유효해야합니다. 그래서, 왜 나는 (null)을 얻습니까?

답변

0

표준 시간대 이름은 로캘에 따라 다르며 다른 언어로 된 것이거나 전혀 존재하지 않을 수 있습니다.

예 : 안정적인 기능을위한

ICT 릴 쥬살 Crozet 시간 +4
ICT 인도 차이나 시간 +7

사용 GMT + XX.

편집 : 섹션은 "시간대 표시 이름"이라고 http://unicode.org/repos/cldr/trunk/docs/web/tr35.html#Time_Zone_Fallback

참고 :

시간대에 대한 자세한 내용은이 링크를 참조하십시오. 이 이름들은 파싱에 사용되는 의도가 전혀 없습니다. 그것들은 (예를 들어 ZZZ 패턴의 결과로서) 표시되도록 의도 된 것입니다.

+0

그래, 그게 더 안정적입니다. 그러나 GMT를 사용하면 일광 절약 시간제가 적용되지 않습니다. – Hlung

+0

PST에는 일광 절약제도 없습니다. "Pacific Standart Time (PST)"및 "Pacific Daylight Time (PDT)"가 있습니다. 그러나 PST는 "파키스탄 표준시"를 의미 할 수도 있고 로캘 (cs-CZ) PST는 전혀 사용할 수 없습니다. – Sulthan

+0

추가 정보가 추가되었습니다. – Sulthan

관련 문제