Локализованная продолжительность как NSString. (Какао) - PullRequest
4 голосов
/ 19 мая 2010

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

1 Ответ

0 голосов
/ 20 мая 2010

Я думаю, что вам нужно создать 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];
...