我有一系列日期,所有日期都是“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);
}
答案 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];
由于