2016-10-24 3 views
1

임 mm에 NSTimeInterval를 포맷하려고 : SS를 내가 예를 들어, 모든 앞에 0을 유지하기 위해 "0시 34분"를 원하는NSDateComponentsFormatter 형식을 "MM : SS"

임 다음을 수행 :

NSTimeInterval interval = 34.56; 
NSDateComponentsFormatter *formatter = [[NSDateComponentsFormatter alloc] init]; 
formatter.allowedUnits = NSCalendarUnitMinute | NSCalendarUnitSecond; 
formatter.zeroFormattingBehavior = NSDateComponentsFormatterZeroFormattingBehaviorPad; 
NSString *string = [formatter stringFromTimeInterval:interval]; 
NSLog(@"%@", string); 

그러나 이것은 "0시 34분"인쇄하고, 나는 그것이해야 "0시 34분"

어떤 아이디어?

답변

0

NSDateComponentsFormatter으로 모든 구성 요소의 앞에 오는 0에 대한 기본 제공 지원이 없습니다.

하지만 당신은 수동으로 서식을 수행 할 수 있습니다

NSTimeInterval interval = 34.56; 
unsigned int seconds = (unsigned int)interval; 
NSString *string = [NSString stringWithFormat:@"%02u:%02u", (seconds/60) % 60, seconds % 60]; 
NSLog(@"%@", string); 
+0

덕분에, 수동 형식의 문제는 응용 프로그램 지역화됩니다 때 올바른 형식되지 않을 수 있다는 것이다. – Hazneliel

+1

@Hazneliel 그리고 앞에 오는 0을 강제하는 것은 주어진 로케일에 맞는 형식이 아닐 수도 있습니다. – rmaddy