NSDateFormatter возвращает дату выключения на день - PullRequest
8 голосов
/ 07 октября 2010

В моем приложении для iPhone я пытаюсь получить EEE MMM dd из строки даты, полученной веб-службой.

Для всех дат, где время <07:00, NSDateFormatter возвращает дату выключенную на 1 день. Например: Дата в формате: 2010-11-17T05: 00: 00, форматированный результат даты: вторник, 16 ноября </p>

Вот фрагмент кода: NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat: @"EEE MMM dd"];</p> <p>NSDate *dateToFormat = [NSDate dateWithNaturalLanguageString:dateStringToFormat locale:[[NSUserDefaults standardUserDefaults] dictionaryRepresentation]];</p> <p>NSString *formattedDateString = [dateFormat stringFromDate:dateToFormat]; [dateFormat release];

В чем может быть проблема?

Ответы [ 2 ]

10 голосов
/ 07 октября 2010

Вероятно, как-то связано с часовыми поясами.Возможно, вам нужно установить соответствующее значение для свойства timeZone вашего объекта NSDateFormatter.

2 голосов
/ 02 ноября 2010

У меня была такая же проблема, но только после обновления до iOS4. Мой форматер выглядит так:

[aDateFormatter setDateFormat: @ "гггг-мм-дд чч: мм: сс г "];

и мои даты таковы:

2009-10-27 7:30:12 -0700

Мне удалось устранить проблему, просто переместив режим выбора даты, установленный до , применяя макс / мин / выбранную дату к средству выбора даты. В моем случае это:

aDatePicker.datePickerMode = UIDatePickerModeDate;

...