Ios NSDataDetector返回非英语语言的错误日期

Ios NSDataDetector返回非英语语言的错误日期,ios,objective-c,cocoa,nsdate,nsdatadetector,Ios,Objective C,Cocoa,Nsdate,Nsdatadetector,因此,我使用NSDataDetector从不同的语言获取日期。对于英语,它返回正确的日期,但对于其他语言,返回的日期是当前日期。这是密码 NSString *dateEn = @"Added on Wednesday, February 4, 2015 5:58:18 PM"; NSString *dateStringRussian = @"Добавлено: суббота, 26 декабря 2015 г. в 0:16:57"; NSString *dateStringPortugu

因此,我使用
NSDataDetector
从不同的语言获取日期。对于英语,它返回正确的日期,但对于其他语言,返回的日期是当前日期。这是密码

NSString *dateEn = @"Added on Wednesday, February 4, 2015 5:58:18 PM";
NSString *dateStringRussian = @"Добавлено: суббота, 26 декабря 2015 г. в 0:16:57";
NSString *dateStringPortuguese = @"Adicionado: sábado, 26 de dezembro de 2015 11:39:53";

__block NSDate *dateFromDetector;
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeDate error:nil];
[detector enumerateMatchesInString:dateStringPortuguese options:kNilOptions range:NSMakeRange(0, [dateStringPortuguese length]) usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
    dateFromDetector = result.date;    
}];

NSLog(@"date is %@", dateFromDetector);
输出葡萄牙语:2016-02-25 22:04:18.530日期检测器[1681:56498]日期为2016-02-25 18:09:53+0000

输出俄语:2016-02-25 22:14:03.416日期检测器[1725:60212]日期为2016-02-24 18:46:57+0000

输出英语:2016-02-25 22:12:13.123日期检测器[1712:59498]日期为2015-02-04 12:28:18+0000


这里出了什么问题?

我运行了你的代码,葡萄牙语代码对我来说很好。在俄语中,数据检测器仅匹配时间子字符串,而不匹配完整日期,这就是为什么它具有从当前日期开始的月/日。NSDataDetector使用当前区域设置来确定日期格式。您将无法通过俄语语言环境中的文本获取日期。@GeneratorOfOne,是否有解决此问题的方法。