Я знаю, хочу ли показывать дату, что Objective-C имеет методы для преобразования даты в виде строки в текущие настройки локали. Существует ли эквивалент продолжительности? Я имею в виду что-то вроде 00:12:34 (0 часов, 12 минут и 34 секунды) в разных местах?Локализованная продолжительность как NSString. (Cocoa)
4
A
ответ
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];
Возможные дублируют [Как разобрать продолжительность ISO-8601 в Objective C?] (Http://stackoverflow.com/questions/1146416/how-to-parse-an-iso-8601-duration-in -объектив-с) –