2012-09-21 15 views
1

我有以下目標C代碼期望的結果:dateByAddingTimeInterval不會放棄在iOS應用開發

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'。但它沒有給出預期的結果。 有人可以建議。我錯過了什麼。 在此先感謝。

回答

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預期。

+0

哦..感謝您的答案。我只是沒有想到這一點。 – clint