1

私はフォーマットの日付を(としてNSString)持っています:

20120508T224500Z

NSDateFormatter文字列からを作成するために使用しようとしNSDateています:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMddTHHmmssZ"];
NSDate *dateFromString = [[NSDate alloc] init];  

しかし、これは NSDate を正しく解析/フォーマットしません。

私はフォーマットを取得しようとしています:

4:45 PM 5/8/2012

日付フォーマッタを使用してこの形式を取得するにはどうすればよいyyyyMMddTHHmmssZですか?

4

1 に答える 1

4

文字列内の「T」と「Z」を一重引用符で囲む必要があります。20120508T224500Z

フォーマット情報については、 Unicode 日付フォーマットを参照してください。

例:

NSString *dateString = @"20120508T224500Z";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyyMMdd'T'HHmmss'Z'"];
NSDate *dateFromString = [dateFormatter dateFromString:dateString];  
NSLog(@"dateFromString: %@", dateFromString);

[dateFormatter setDateFormat:@"h:m a M/d/yyyy"];
NSString *newDataString = [dateFormatter stringFromDate:dateFromString];
NSLog(@"newDataString: %@", newDataString);

NSLog 出力:

dateFromString: 2012-05-09 02:45:00 +0000
newDataString: 10:45 PM 5/8/2012

NSLog は NSDate 記述方法を使用し、日付/時刻を現地時間で表示することに注意してください。異なるタイムゾーンで文字列を作成するために
使用します。- (void)setTimeZone:(NSTimeZone *)tz

于 2012-05-07T22:24:33.673 に答える