我知道如果想显示一个日期,Objective-C 有方法可以将日期作为字符串转换为当前的语言环境设置。是否有等价的持续时间?我的意思是不同语言环境中的 00:12:34(0 小时 12 分 34 秒)?
最佳答案
我认为您需要的是创建一个 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];
关于objective-c - 本地化持续时间为 NSString。 ( cocoa ),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2866890/