RFC2822

Cocoa / iPhone: форматирование даты

Простой пример для тех, кто ищет простой и быстрый путь отформатировать дату при разработке под iPhone. В моем примере будем форматировать дату по стандарту RFC2822.

NSString *rfcDate = @"Mon, 4 Jan 2010 20:41:12 +0300";

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

/* Установка локали обязательна, т.к. иначе будет использована текущая */
NSLocale *enUS = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[formatter setLocale:enUS];
[enUS release];
[formatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZ"];
NSDate *theDate = [formatter dateWithString:rfcDate];

Данный подход достаточно прост и эффективен, но у него есть один минус - куча строк, которые придется писать каждый раз, когда надо сделать преобразование. Чтобы этого избежать можно сделать так: