/ / NSDateFormatter, NSDate, UTC та дивний формат дати - iphone, какао, какао-дотик

NSDateFormatter, NSDate, UTC та дивний формат дати - iphone, какао, какао-дотик

У мене дуже дивний формат дати, що надходить до мене через JSON. наприклад - "18 липня 2010 02:22:09"

Ці дати завжди є UTC. Я розбираю дату з NSDateFormatter і встановлюю timeZone на UTC ...

NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[inputFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]];
[inputFormatter setDateFormat:@"MMMM, dd yyyy HH:mm:ss"];
NSDate *formatterDate = [inputFormatter dateFromString:dtStr];

Однак дата, коли ввійшли в систему, відображається зі зміщенням мого пристрою ...

"2010-07-18 02:22:09 -0600"

Що тут я роблю?

Відповіді:

2 для відповіді № 1

Я думаю, це тому, що ваш NSDate не використовує часовий пояс UTC. Документи говорять про метод опису NSDate:

Рядкове представлення приймача вміжнародний формат YYYY-MM-DD HH: MM: SS ± HHMM, де ± HHMM являє собою зміщення часового поясу в годинах і хвилинах від GMT (наприклад, "2001-03-24 10:45:32 +0600").

Отже, ви насправді не робите нічого поганого. NSDate поводиться так, як очікувалося. Що ви намагаєтеся досягти? Чи потрібна вам дата в рядку? Ви робите порівняння дат?