Iphone dateByAddingTimeInterval未在IOS应用程序开发中提供所需结果

Iphone dateByAddingTimeInterval未在IOS应用程序开发中提供所需结果,iphone,objective-c,ios,xcode,cordova,Iphone,Objective C,Ios,Xcode,Cordova,我有以下目标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:da

我有以下目标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)。然后向其中添加一个时间间隔以转换新的日期。最后,此日期对象再次转换为字符串并打印。 但我没有得到想要的结果。 对于eg:对于给定的日期字符串,如果间隔是45000.00,那么它基本上是12.5小时。所以,我的dateConvertedStr应该给出“2012-09-21 17:30:00”。但这并没有产生预期的结果。 有人能建议吗。我错过了什么吗。
提前感谢。

这里的问题是您提供的格式字符串。在您的示例中(假定间隔为
45000.00f
),它返回
date conv str=2012-09-21 5:30:00
,因为您使用的是基于12h的格式

试试这个(注意大写字母
H
):


现在,您的
dateConvertedStr
与预期一样是
2012-09-21 17:30:00

这里的问题是您提供的格式字符串。在您的示例中(假定间隔为
45000.00f
),它返回
date conv str=2012-09-21 5:30:00
,因为您使用的是基于12h的格式

试试这个(注意大写字母
H
):

现在您的
dateConvertedStr
如预期的那样是
2012-09-21 17:30:00

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