Convert NSString of a date to an NSDate

This might be a silly question, but I can't seem to find the answer on here or in the documentation.

I want to convert an NSString such as @"9/22/2010 3:45 PM" to an NSDate.

I know to use NSDateFormatter, but the problems are

  1. The month could be one or two digits
  2. Likewise, the date could be one or two digits
  3. Hours could be one or two digits
  4. What do I do about AM/PM?

Solution 1:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy h:mm a"];
NSDate *date = [dateFormat dateFromString:dateStr];
[dateFormat release];

there is no problem in 2 digit day or 2 digit month.

This must help you.

Solution 2:

You can parse an NSString into an NSDate using the NSDateFormatter class. See the documentation for more info:

Instances of NSDateFormatter create string representations of NSDate (and NSCalendarDate) objects, and convert textual representations of dates and times into NSDate objects.