这可能是一个愚蠢的问题,但我似乎无法在此处或文档中找到答案。
我想将NSString(例如@“9/22/2010 3:45 PM”)转换为NSDate。
我知道使用NSDateFormatter,但问题是
答案 0 :(得分:26)
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy h:mm a"];
NSDate *date = [dateFormat dateFromString:dateStr];
[dateFormat release];
2位数或2位数月没有问题。
这必须帮助你。
答案 1 :(得分:3)
您可以使用NSString
课程将NSDate
解析为NSDateFormatter
。有关详细信息,请参阅the documentation:
NSDateFormatter实例创建NSDate(和NSCalendarDate)对象的字符串表示形式,并将日期和时间的文本表示转换为NSDate对象。
答案 2 :(得分:2)
我遇到了同样的问题,不知道为什么NSDateFormatter不适合我(iOS5 - Xcode 4.3.2),但这对我来说很有用:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSString *dateString = @"05-06-2012";
NSDate *date;
NSError *error = nil;
if (![dateFormatter getObjectValue:&date forString:dateString range:nil error:&error]) {
NSLog(@"Date '%@' could not be parsed: %@", dateString, error);
}
[dateFormatter release];