IOS:从字符串解析日期

IOS:从字符串解析日期,ios,nsstring,nsdateformatter,Ios,Nsstring,Nsdateformatter,我想解析给定字符串中的日期。字符串的格式总是这样:“YYMMDD”,例如110831,即2011年、8月和31日。出于测试目的,我写了一小段代码: NSString* strDate = [NSString stringWithFormat:@"110803"]; NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"YYMMDD"]; NSDate* dat

我想解析给定字符串中的日期。字符串的格式总是这样:“YYMMDD”,例如110831,即2011年、8月和31日。出于测试目的,我写了一小段代码:

NSString* strDate = [NSString stringWithFormat:@"110803"];
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYMMDD"];
NSDate* date = [dateFormatter dateFromString:strDate];
NSLog(@"date = %@", date );
问题:对于“110829”,NSLog的输出始终为2011-01-02 23:00:00+0000或2011-01-29 23:00:00+0000。对于“110630”,交付相同的输出。所以我知道第一天是以零开始的,但是月份没有被正确识别。所以我在问自己我做错了什么

[dateFormatter setDateFormat:@"yyMMdd"];


时区和地区也可能会让你大吃一惊。如果您输出日期:@“110804”,并且您在英国(和我一样)-这是英国夏季时间(GMT+1),但它尊重我当前的GMT时区-因此输出将实际是11 08 03 23:00的NSDate!!这可能令人困惑。我建议观看WWDC 2011视频“执行日历计算”