2016-10-24 3 views
1

Im пытается форматировать NSTimeInterval в мм: сс, и я хочу, чтобы сохранить все ведущие нули, например, «00:34»формат NSDateComponentsFormatter на «мм: сс»

Im делает следующее :

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", и мне нужно, чтобы это было "00:34"

Любая идея?

ответ

0

Нет встроенной поддержки ведущих нулей для каждого компонента с NSDateComponentsFormatter.

Но вы можете сделать такое форматирование вручную:

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 И форсирование ведущих нулей может быть неправильным форматом для данного языка. – rmaddy

Смежные вопросы