NSDateFormatter解析错误

时间:2012-10-08 19:34:18

标签: objective-c ios6 nsdateformatter

我有一系列日期,所有日期都是“yyyyMMdd”格式。

问题是当NSDateFormatter尝试解析“20121021”时,它仅在iOS 6上返回null。

所以,我在iOS 4.x和5.x上测试过,它运行得很好。有人有同样的问题吗?

以下是代码:

NSString *sdate = @"20121021";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];

NSDate *aDate = [dateFormat dateFromString:sdate];
[dateFormat release];
if (aDate){
    [dates addObject:aDate];
}else{
    NSLog(@"%@", sdate);
}

2 个答案:

答案 0 :(得分:0)

在ARC ios 6中尝试过 -

尝试没有ARC ios 6-工作

NSString *sdate = @"20121021";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *aDate = [dateFormat dateFromString:sdate];
[dateFormat release];

if (aDate){
    NSLog(@"%@", aDate);

}else{
    NSLog(@"%@", aDate);
}

我的日志

2012-10-09 11:54:08.941 asd[97441:11303] 2012-10-20 18:30:00 +0000

答案 1 :(得分:0)

找到答案......我忘了为格式化程序设置NSTimeZone。

新代码:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

[dateFormat setDateFormat:@"yyyyMMdd"];

NSDate *aDate = [dateFormat dateFromString:sdate];
[dateFormat release];

由于