2014-04-04 2 views
1

바보 같은 문제에 봉착했습니다. Apple에 따르면 NSDateFormatter 인스턴스에서 locale 속성을 설정하면 예를 들어 사용자가 12 또는 24 시간 형식을 선호하는지 여부와 같은 일부 설정이 무시됩니다. 새로 생성 된 NSDateFormatter 인스턴스는 현재 로케일로 초기화됩니다. WWDC 2011 세션 117은이 12/24 시간 문제에 대해 54시에 이야기합니다. 형식이 명시 적으로 HH:mm으로 설정되어있는 경우에도 애플의 문서와이 사용자의 기본 로케일을 출력 현재 시간을해야 WWDC 세션에 따르면현재 로캘을 기반으로 NSDateFormatter에 대한 자동 12/24 시간 서식을 얻는 방법

NSDate *date = [NSDate date]; 
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"HH:mm"]; 
NSLog(@"%@",[formatter stringFromDate:date]); 

: 여기 내가 사용하는 코드입니다. 그러나 어떤 이유에서인지, 나는 항상 24 시간의 표현을 얻는다. 또한 로캘을 [NSLocale autoupdatingCurrentLocale], [NSLocale currentLocale] 및 여러 국가 로캘로 설정하려고했습니다. 같은 결과. 어떤 아이디어?

답변

3

대신 dateFormat는의 timeStyle을 설정하십시오 :

formatter.timeStyle = NSDateFormatterShortStyle; 
formatter.dateStyle = NSDateFormatterNoStyle;