У мене дуже дивний формат дати, що надходить до мене через 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 поводиться так, як очікувалося. Що ви намагаєтеся досягти? Чи потрібна вам дата в рядку? Ви робите порівняння дат?