我正在尝试将此字符串@“2013年8月8日”转换为NSDate,但我的结果仍然是NULL:
strToConvert = @"August 8, 2013";
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"MM/dd/YYYY zzz"];
NSDate* myDate = [dateFormatter dateFromString:strToConvert];
我的格式不正确吗?
编辑:
我将方法更改为:
- (NSDate*) convertStringToDate : (NSString*) strToConvert {
NSError* error = nil;
NSDataDetector* detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeDate error:&error];
NSArray* arrDateMatches = [detector matchesInString:strToConvert options:0 range:NSMakeRange(0, [strToConvert length])];
for (NSTextCheckingResult* match in arrDateMatches) {
strToConvert = [self convertDateToString:match.date];
}
NSDate* myDate = [dateFormatter dateFromString:strToConvert];
return myDate;
}
它工作正常。唯一的问题是我从枚举类型'enum NSTextCheckingType'获得隐式转换...有关如何修复该警告的任何想法吗?
答案 0 :(得分:5)
NSDateFormatter
的格式不正确。您需要匹配预期输入的格式:
[dateFormatter setDateFormat:@"MMMM d, yyyy"];