Objective c NSDateFormatter分析错误
我有一系列的日期,它们都是“yyyyMMdd”格式的 问题在于,当NSDateFormatter试图解析“20121021”时,它仅在iOS 6上返回null 所以,我在iOS 4.x和5.x上测试了它,它工作得非常好。有人有同样的问题吗 代码如下:Objective c NSDateFormatter分析错误,objective-c,ios6,nsdateformatter,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:@"yyy
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);
}
在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
找到了答案。。。我忘了为格式化程序设置NSTimeZone 新代码:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *aDate = [dateFormat dateFromString:sdate];
[dateFormat release];
谢谢是的,我找到了问题。我忘了设置NSTimeZone。顺便说一下,它对你不起作用。你试图解析20121021,结果得到了2012-10-20的输出…@FernandoRocha:是的,它起作用了。我的本地时区是+5:30,所以dateformatter获得的输出将是如此