Мне действительно нравится , Продвигают , здесь можно получить обзор, , документация довольно хороша, и можно получить ее через ГРУШУ или SVN.
Вам только нужна работа установка PHP5, и Phing, чтобы начать генерировать классы.
Подсчитайте количество характерных символов, прежде чем решить, какой форматтер использовать. Например, у двоих, которые вы даете, разное количество запятых и пробелов. Если ни один из известных форматов не соответствует количеству, то вы даже не знаете, чтобы пытаться разобрать его как дату.
Я считаю, что RFC 822 определяет два необязательных компонента в дате и времени: день недели и секунды после часа.
В качестве взлома можно использовать символы для коротких дней. недели:
NSArray *shortWeekSymbols = [NSArray arrayWithObjects:@"Sun,", @"Mon,", @"Tue,", @"Wed,", @"Thu,", @"Fri,", @"Sat,", nil];
[formatter setShortWeekdaySymbols:shortWeekSymbols];
Если вы затем измените формат даты на следующий: EEEdd MMM yyyy HH: mm: ss z
. Вы сможете анализировать время с помощью примерно без дня недели. Похоже, это позволяет использовать пробел и после запятой.
В целях безопасности не следует просто вслепую устанавливать подобные символы. Вы должны использовать setShortWeekdaySymbols
и перебирать их, добавляя запятую в конце. Причина в том, что они потенциально различны для каждого региона, и первый день может быть не воскресеньем.
Интересно, что формат EEE, dd MMM yyyy HH: mm: ss z
будет анализировать время без дня недели. , но запятая должна быть там, например , 01 декабря 2009 08:48:25 +0000
. Таким образом, вы могли бы сделать что-то вроде того, что сказал Стив, но затем отказаться от этого и перейти к форматеру. Отсутствие запятой в формате не означает, что неделя может быть необязательной. Странно.
К сожалению, это все еще не помогает с необязательным: ss в формате. Но это может позволить вам использовать два формата вместо четырех.