4

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

4

1 回答 1

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];
于 2010-05-19T20:32:07.783 回答