Есть ли способ конвертировать дату NSString на естественном языке в NSDate - PullRequest
8 голосов
/ 04 мая 2011

Допустим, у меня есть NSString @"tomorrow"

Есть ли какая-нибудь библиотека, которая принимает строки, подобные этой, и преобразует их в NSDates?Я воображаю / надеюсь на что-то вроде этого:

NSString* humanDate = @"tomorrow at 4:15";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"x at HH:MM"];
NSDate* date = [dateFormatter dateFromString:humanDate];

Я также хотел бы сделать такие вещи, как «Следующий понедельник» и т. Д., Но это не должно быть супер сложным.Я могу применять правила для ввода, но мне бы хотелось немного доступного естественного языка.

Моя альтернатива - взять строку, разбить ее на части и отформатировать вручную.Но я надеялся, что кто-то уже сделал это.

1 Ответ

5 голосов
/ 04 мая 2011

Вы имеете в виду что-то вроде dateWithNaturalLanguageString: ?

Из ссылки:

dateWithNaturalLanguageString:

Создает и возвращает объект NSDate, для которого установлены дата и время, заданные данной строкой.

+ (id) dateWithNaturalLanguageString: (NSString *) строка

Строка, в которой содержится разговорная спецификация даты, например, «последний вторник за ужином», «3 часа дня 31 декабря 2001 года», «31/12/01» или «31/12/01».

...