Как найти формат даты строки

#objective-c #cocoa #nsdate #nsdateformatter

#objective-c #cocoa #nsdate #nsdateformatter

Вопрос:

Есть ли способ (элегантный способ) извлечь формат даты из строки, содержащей дату, чтобы ее можно было преобразовать в NSDate с помощью NSDateFormatter?

то есть

 string = @"2011-1-10";
format = [extractor extractFormat:string];// format would = yyyy-dd-mm
[formatter setDateFormatter:format];
NSDate * date = [formatter dateFromString:string];
  

Ответ №1:

Если это единственная информация, которая у вас есть, то это невозможно. Например, «10-10-10».

Комментарии:

1. 1 это явно через 10 минут и 10 секунд после начала 10 года.

2. Вы могли бы попытать счастья с детекторами данных. Примерный год, который дает Эрик, — это четырехзначный год. Насколько я понимаю, детекторы данных зависят от локали, поэтому можно сделать вывод о «DD-MM» или «MM-DD». Я думаю, что детекторы данных правильно угадали бы больше дат, чем вы предполагаете. 🙂 Однако важное сообщение остается в силе — оно неточно и требует проверки человеком.

3. Джошуа, я думал о чем-то подобном, но я решил стиснуть зубы и предоставить пользователю самому выбирать, какой формат даты будет использовать их отчет. В любом случае спасибо.