nsdateformatter проблемы с часовыми поясами - PullRequest
0 голосов
/ 10 января 2012
"2012-01-30 00:00:00 +0000",
"2012-01-31 00:00:00 +0000",
"2012-02-01 00:00:00 +0000"

У меня есть список дат из xml, перечисленных выше. Мне нужно отформатировать и отсортировать .. Я использую код

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];  
        [dateFormatter setDateFormat:@"MMM dd"];  
         [dateFormatter stringFromDate:d];

Я получаю (Ян30, 31 января, 01 февраля) (Индия) и клиент попадает в США (29 января, 30 января, 31 января) ..

После этого я что-то обновляю и устанавливаю часовой пояс ..

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"America/Los_Angeles"]];  

dateFormatter.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]
                            autorelease];

Я получаю неправильную дату (29 января, 30 января, 31 января) .... и я ищу другие сайты, и я устанавливаю

[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

Этот код работает для меня.я не знаю, этот код работает для других стран

мне нужно правильная дата зависит от страны ...

1 Ответ

0 голосов
/ 08 февраля 2013

Установите часовой пояс для даты, которую вы анализируете. Форматтер предполагает использование GMT, а дату, которую вы печатаете, - ваш местный часовой пояс.

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
...