我在Apple Dev論壇https://devforums.apple.com/message/956514上發佈了這個問題。我希望它也可以在這裏發佈。蘋果開發論壇沒有迴應。NSDataDetector和1900年之前的日期帶回錯誤的日期
每當我輸入的日期少於1900年,NSDataDetector匹配到錯誤的日期。
例如:
1201年1月1日的比賽,以2015年1月1日和1201年2月1日的比賽,以2014年2月1日
似乎在一月份,這比1900更早的任何日期回來與日期一月,但2015年與任何日期晚於一月但之前1900場比賽任何一年的2014年
這裏說的日期是我的檢測日期代碼:
NSDataDetector *detector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeDate error:&error];
NSArray *matches = [detector matchesInString:myDateString options:0 range:NSMakeRange(0, [myDateString length])];
for (NSTextCheckingResult *match in matches) {
if (match.resultType == NSTextCheckingTypeDate) {
determinedDate = match.date;
}
}
myDateString只是一個包含需要解析的日期值的字符串。
我做錯了什麼或者這是NSDataDetector的已知問題?
如果您能夠修改此行爲將會很好。 –
你應該在http://bugreport.apple.com上提交一個錯誤。 –
有了NSDateFormatter,你不能輸入諸如「明天的午餐」之類的東西,你必須使用特定的日期格式來輸入日期。這不是用戶友好的。 –