我有以下目标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);
这里我试图首先将日期字符串转换为日期对象(dateNew)。然后添加一个间隔以获得新的dateConverted。最后,此日期对象再次转换为字符串并打印。 但我没有得到理想的结果。 例如:对于给定的日期字符串,如果间隔是45000.00,那么它基本上是12.5小时。所以,我的dateConvertedStr应该给'2012-09-21 17:30:00'。但它没有给出预期的结果。 任何人都可以建议。我错过了什么。 提前谢谢。
答案 0 :(得分:1)
这里的问题是您提供的格式字符串。在您的示例中(假设间隔为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
符合预期。