2010-05-19 7 views
4

Я знаю, хочу ли показывать дату, что Objective-C имеет методы для преобразования даты в виде строки в текущие настройки локали. Существует ли эквивалент продолжительности? Я имею в виду что-то вроде 00:12:34 (0 часов, 12 минут и 34 секунды) в разных местах?Локализованная продолжительность как NSString. (Cocoa)

+0

Возможные дублируют [Как разобрать продолжительность ISO-8601 в Objective C?] (Http://stackoverflow.com/questions/1146416/how-to-parse-an-iso-8601-duration-in -объектив-с) –

ответ

0

Я думаю, что вам нужно создать NSDateFormatter и вызвать setDateStyle: установить его в NSDateFormatterNoStyle, а затем отобразит только время без отображения даты.

NSString *originalString = @"01:23:45"; 
NSDateFormatter *fromFormatter = [[NSDateFormatter alloc] init]; 
[fromFormatter setDateFormat:@"HH:mm:ss"]; 
[fromFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; 
[fromFormatter setTimeZone:[NSTimeZone systemTimeZone]]; 
NSDate *date = [fromFormatter dateFromString:originalString]; 
[fromFormatter release]; 

NSDateFormatter *toFormatter = [[NSDateFormatter alloc] init]; 
[toFormatter setDateStyle:NSDateFormatterNoStyle]; 
[toFormatter setTimeStyle:kCFDateFormatterFullStyle]; 
[toFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Tokyo"]]; 
[toFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"ja"] autorelease]]; 
NSString *s = [toFormatter stringFromDate:date]; 
NSLog(@"s:%@", s); 
[toFormatter release]; 
+0

Спасибо, но это для времени, а не для продолжительности. Я имел в виду нечто вроде секундомера. – Frans

+0

Я также заинтересован динамически печатать длительность, например, «1 час» или «20 минут» или «2 часа 12 минут», в зависимости от продолжительности. – miho

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

  • Нет связанных вопросов^_^