I am having the following objective C code:
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);
Here i am trying to first convert a date string into date object(dateNew). Then an interval is added to it to get new dateConverted. Lastly, this date object is converted to string again and printed.
But i am not getting desired results.
For eg: for given date string, if interval is 45000.00, then it is basically 12.5 hrs. So, my dateConvertedStr should give ‘2012-09-21 17:30:00’. But it is not giving desired results.
Can anybody suggest. Am i missing something.
Thanks in advance.
The problem here is the format string you supply. In your example (given that interval is
45000.00f) it returnsdate conv str=2012-09-21 5:30:00because you use 12h based format.Try this instead (note the capital
H):And now your
dateConvertedStris2012-09-21 17:30:00as expected.