NSDateFormatter, NSDate, UTC и странный формат даты - PullRequest
3 голосов
/ 20 июля 2010

У меня очень странный формат даты, приходящий ко мне через 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"

Что я здесь не так делаю?

1 Ответ

2 голосов
/ 20 июля 2010

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

Строковое представление получателя в международном формате YYYY-MM-DD ЧЧ: ММ: СС ± ЧЧММ, где ± ЧЧММ представляет часовой пояссмещение в часах и минутах от GMT (например, «2001-03-24 10:45:32 +0600»).

Таким образом, вы на самом деле не делаете ничего плохого.NSDate ведет себя как ожидалось.Что вы пытаетесь достичь?Вам нужна дата в строке?Вы делаете сравнение дат?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...