форматирование даты из строки NSString с использованием NSDateFormatter - PullRequest
3 голосов
/ 05 февраля 2012

У меня есть следующая строка, представляющая дату и время

NSString *shortDateString = @"Sat28Apr2012 15:00";

(без пробелов (кроме одного пробела перед временем), как указано выше)

Я хотел бы отформатировать эту дату, используя:

NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
// Question is regarding the line below:
[inputFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm"];

NSDate *formatterDate = [inputFormatter dateFromString:shortDateString];

NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[outputFormatter setTimeZone:gmt];
[outputFormatter setDateFormat:@"dd.MMM.yyyy HH:mm Z"];

NSString *newDateString = [outputFormatter stringFromDate:formatterDate];

Ответы [ 2 ]

3 голосов
/ 05 февраля 2012

Если вы слегка измените строку, чтобы она точно соответствовала формату ввода, она будет работать нормально.Все, что вам нужно сделать, это удалить пробелы и запятую из строки, например:

"EEEdMMMyyyy HH:mm"

С этой строкой я получаю следующий результат:

08.Apr.2012 19:00 +0000

Это 19:00, а не 15:00, потому что мой часовой пояс отстает от GMT на четыре часа.

1 голос
/ 05 февраля 2012
[inputFormatter setDateFormat:@"EEEddMMMyyyy HH:mm"];
...