-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

就像@Gabriele 说的那样,使用 aNSDateFormatter是要走的路。以下内容对您有用,包括日期格式:

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]);

不要使用大写字母 Ys “YYYY”,除非您希望在基于“一年中的一周”的日历中显示年份。大多数用例“yyyy”是指定年份的正确方法。

于 2013-01-22T23:24:16.410 回答
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 回答