1

我有以下目标 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'。但它没有给出预期的结果。任何人都可以建议。我是不是错过了什么。提前致谢。

4

1 回答 1

1

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

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

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

现在你dateConvertedStr2012-09-21 17:30:00正如预期的那样。

于 2012-09-21T14:12:41.150 回答