Я не могу найти информацию об этом флаге, в StackOverflow или в другом месте в Интернете. Собственная документация Apple только говорит:Как использовать параметр isLenient NSDateFormatter?
Если форматтер настроен на снисхождение, при разборе строки он использует эвристику, чтобы угадать дату, которая предназначена. Как и в случае любых догадок, это может привести к неправильной дате результата (то есть к дате, отличной от той, которая была предназначена).
Возможно, я не понимаю, как это должно работать, но я не могу заставить его работать вообще. Мое предположение было что-то вроде этого (с относительно легкой даты разбора):
> import Foundation
> let df = DateFormatter()
> df.isLenient = true
> df.date(from: "12:00 1/1/2001")
$R0: Date? = nil
Независимо от того, что я стараюсь, я получаю ноль.
Я также вижу, что есть doesRelativeDateFormatting
флаг, который претендует на поддержку таких фраз, как «сегодня» и «завтра»», но это, кажется, не делать ничего, либо:
> df.doesRelativeDateFormatting = true
> df.date(from: "today")
$R1: Date? = nil
Любые идеи?
То, что вы, вероятно, ищет это NSDataDetector http://stackoverflow.com/questions/32595651/convert-from-date- string-in-unknown-format/32595941 # 32595941 –
Лев: Хороший звонок. Я хочу заменить 'allowNaturalLanguage', а' lenient' находится рядом с ним в разделе «Поддержка естественного языка». –