objective-c NSDateFormatter from string返回null

时间:2013-08-12 13:31:09

标签: objective-c nsdateformatter

我正在尝试将此字符串@“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'获得隐式转换...有关如何修复该警告的任何想法吗?

1 个答案:

答案 0 :(得分:5)

NSDateFormatter的格式不正确。您需要匹配预期输入的格式:

[dateFormatter setDateFormat:@"MMMM d, yyyy"];