Reputation: 449
I have the following code:
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];
}
Where I cycle through an array of dictionary objects - one of which is a date. I have checked the format of the incoming date string - which is:
2020-07-15 07:01:00
However - once it has been through the dateformatter - the NSDate comes out as:
2020-01-15 07:01:00
Upvotes: 0
Views: 900
Reputation: 22631
Your problem is that you are using m
for both months and minutes.
Instead of
[formatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"];
you have to use:
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
Click here to see the full list of symbols you can use.
For Swift
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
Upvotes: 3