这可能是一个愚蠢的问题,但我似乎无法找到在这里或文档中的答案。
我想要一个NSString转换,如@“9/22/2010 3:45 PM”到一个NSDate。
我知道使用NSDateFormatter,但问题是
- 这个月可能是一个或两个数字
- 同样,日期可能是一个或两个数字
- 时间可能是一个或两个数字
- 我该怎么办AM / PM?
这可能是一个愚蠢的问题,但我似乎无法找到在这里或文档中的答案。
我想要一个NSString转换,如@“9/22/2010 3:45 PM”到一个NSDate。
我知道使用NSDateFormatter,但问题是
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy h:mm a"];
NSDate *date = [dateFormat dateFromString:dateStr];
[dateFormat release];
有2位天或2位数月份没有问题。
这必须帮助你。
您可以解析NSString
成NSDate
使用NSDateFormatter
类。 请参阅文档的详细信息:
NSDateFormatter的实例创建NSDate的(和NSCalendarDate)对象的字符串表示,和日期和时间的文本表示转换成NSDate的对象。
我有同样的问题,不知道为什么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];