我有以下目标C代码:
NSString *dateStr = @"2012-09-21 05:00:00";
// Convert string to date object
NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
[formatter2 setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *dateNew = [formatter2 dateFromString:dateStr];
//NSLog(@"date new %@" , [dateNew description]);
NSDate *dateConverted = [dateNew dateByAddingTimeInterval:interval];
//NSLog(@"date converted=%@",dateConverted);
NSString *dateConvertedStr = [formatter2 stringFromDate:dateConverted];
NSLog(@"date conv str=%@",dateConvertedStr);
在这里,我试图首先将日期字符串转换为日期object(dateNew)。然后向其添加一个间隔以获取新的dateConverted。最后,该日期对象再次转换为字符串并打印。
但是我没有得到理想的结果。
例如:对于给定的日期字符串,如果间隔为45000.00,则基本上是12.5小时。因此,我的dateConvertedStr应该为'2012-09-21 17:30:00'。但这并没有给出预期的结果。
有人可以建议。我错过了什么吗?
提前致谢。
最佳答案
这里的问题是您提供的格式字符串。在您的示例中(假设间隔为45000.00f
),它返回date conv str=2012-09-21 5:30:00
,因为您使用的是基于12h的格式。
请尝试以下操作(请注意大写字母H
):
[formatter2 setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
现在,您的
dateConvertedStr
是预期的2012-09-21 17:30:00
。