NSDateComponentsFormatter формат в "мм: сс"

Я пытаюсь отформатировать NSTimeInterval в mm:ss, и я хочу сохранить все ведущие нули, например, "00:34"

Я делаю следующее:

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"

Любая идея?

1 ответ

Решение

Нет встроенной поддержки начальных нулей для каждого компонента с NSDateComponentsFormatter,

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

NSTimeInterval interval = 34.56;
unsigned int seconds = (unsigned int)interval;
NSString *string = [NSString stringWithFormat:@"%02u:%02u", (seconds / 60) % 60, seconds % 60];
NSLog(@"%@", string);
Другие вопросы по тегам