日付を表示したい場合、Objective-C には日付を文字列として現在のロケール設定に変換するメソッドがあることを知っています。期間に相当するものはありますか?別のロケールでは 00:12:34 (0 時間 12 分 34 秒) のようなものですか?
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 に答える