NSDateFormatter dateFromString返回错误的月份的date

我有以下代码:

for (i=0; i<json.count; i++) { NSDictionary *bodyDictionary = [json objectAtIndex:i]; NSDateFormatter *formatter = [[NSDateFormatter alloc]init]; [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; [formatter setLocale:[NSLocale currentLocale]]; [formatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"]; NSDate *date = [formatter dateFromString:[bodyDictionary objectForKey:@"date"]]; NSNumber* thisVolume = [NSNumber numberWithInteger:[[bodyDictionary objectForKey:@"volume"] integerValue]]; NSTimeInterval timeNumber = [date timeIntervalSince1970]; CGPoint point = CGPointMake(timeNumber, thisVolume.doubleValue); NSValue *pointValue = [NSValue valueWithCGPoint:point]; [dataArray addObject:pointValue]; } 

在哪里我通过字典对象的数组循环 – 其中之一是一个date。 我已经检查了传入datestring的格式 – 这是:

2020-07-15 07:01:00

然而 – 一旦它已经通过dateformatter – NSDate出来了:

2020-01-15 07:01:00

你的问题是,你使用m为两个月和几分钟。

代替

 [formatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"]; 

你必须使用:

 [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 

点击这里查看您可以使用的符号的完整列表。