-2

解析しようとしています

2013-01-23T22:46:29.564Z

NSDateに:

NSDate *date = [GeneralHelper getDateFromDateString:expiryDateASStr];
if(date != nil) {
    printf("\n PARSED DATE %s", [date.description UTF8String]);
} else {
    printf("\n failed to parse");
}

しかし、失敗しています。どうすればこれを機能させることができますか?ありがとう!

4

2 に答える 2

4

使うNSDateFormatter

NSString * dateString = @"2013-01-23T22:46:29.564Z";
NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:SS.SSS'Z'"];
NSDate * date = [dateFormatter dateFromString:dateString];
于 2013-01-22T23:02:52.970 に答える
4

@Gabrieleが言ったように、aを使用するのNSDateFormatterが方法です。日付形式を含め、以下が機能します。

NSDateFormatter* df = [[NSDateFormatter alloc] init];
[df setLocale:[NSLocale currentLocale]];
[df setCalendar:[NSCalendar currentCalendar]];
[df setTimeZone:[NSTimeZone defaultTimeZone]];
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:SS.SSS'Z'"];
NSLog(@"%@", [df dateFromString:expiryDateASStr]);

「WeekofYear」ベースのカレンダーで年が必要な場合を除いて、大文字のYs「YYYY」を使用しないでください。ほとんどのユースケース「yyyy」は、年を指定する正しい方法です。

于 2013-01-22T23:24:16.410 に答える