I am trying to convert a String into NSDate, but I am getting Null.
Sample String Input is = 8/8/2013 12:32:22 PM
Code:
[self.dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSLog(@"Date %@", [[communications objectAtIndex:x] objectForKey:@"dateUpdated"]);
NSDate *date = [[NSDate alloc] init];
date = [self.dateFormat dateFromString:[[communications objectAtIndex:x] objectForKey:@"dateUpdated"]];
NSLog(@"Date from NSDate %@", [self.dateFormat stringFromDate:date]);
What am I doing wrong?
Sample NSLog Output
2013-08-15 13:01:59.409 HD[478:907] Date 8/8/2013 12:32:22 PM
2013-08-15 13:01:59.412 HD[478:907] Date from NSDate (null)
2013-08-15 13:01:59.418 HD[478:907] Date 8/12/2013 9:45:18 AM
2013-08-15 13:01:59.419 HD[478:907] Date from NSDate (null)
2013-08-15 13:01:59.421 HD[478:907] Date 8/12/2013 9:45:20 AM
2013-08-15 13:01:59.423 HD[478:907] Date from NSDate (null)
2013-08-15 13:01:59.430 HD[478:907] Date 8/12/2013 4:10:49 PM
2013-08-15 13:01:59.431 HD[478:907] Date from NSDate (null)
Note: What's really strange is that if I run the same code on Simulator it works fine and most devices. For some reason, if I run it on a handful of devices that are all up to date, it returns null...
Make these changes, then report back:
Also make sure
It is probably locale-dependent, but with
it should work on all devices.
First of all, try to check if your code is working in single pieces. For instance, try to see the NSString that is going to be used in -dateFromString: method is in the desired format. Also, in order to check if your code is working, you're reverting the operation from NSDate to NSString.
I have tried the following code and it works well. So definitely, your error is somewhere else, but not in the date format itself. Check also if your NSDateFormatter was properly initilized.