本地化持续时间为NSString。 (可可)

时间:2010-05-19 15:22:36

标签: objective-c duration

我知道如果要显示日期,Objective-C有将日期作为字符串转换为当前语言环境设置的方法。是否有等效的持续时间?我的意思是00:12:34(0小时12分34秒)在不同的地方?

1 个答案:

答案 0 :(得分: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];