NSDateFormatter dateFromString returns 月份错误的日期
NSDateFormatter dateFromString returns date with wrong month
我有以下代码:
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];
}
我循环遍历一组字典对象 - 其中一个是日期。我已经检查了传入日期字符串的格式 - 这是:
2020-07-1507:01:00
但是 - 一旦它通过日期格式化程序 - NSDate 就会出现:
2020-01-1507:01:00
您的问题是您使用了 m
几个月和几分钟。
而不是
[formatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"];
你必须使用:
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
单击 here 查看您可以使用的符号的完整列表。
为Swift
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
我有以下代码:
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];
}
我循环遍历一组字典对象 - 其中一个是日期。我已经检查了传入日期字符串的格式 - 这是:
2020-07-1507:01:00
但是 - 一旦它通过日期格式化程序 - NSDate 就会出现:
2020-01-1507:01:00
您的问题是您使用了 m
几个月和几分钟。
而不是
[formatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"];
你必须使用:
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
单击 here 查看您可以使用的符号的完整列表。
为Swift
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"