NSDateFormatter неверная дата на симуляторе, правильная дата на устройстве - PullRequest
3 голосов
/ 17 марта 2010

Я создаю календарь и выясняю первый день месяца, который я делаю

[formatter setDateFormat:@"e"];
int startDay = [[formatter stringFromDate:newDate] intValue];

На устройстве это работает правильно, а 1-е число месяца - в правильный день.Но на симуляторе это послезавтра.Хотя это не слишком важно для симулятора, это сводит меня с ума, думая, что я сделал что-то не так.Я попытался установить язык форматирования, но без разницы, и я думаю, что это должно.Кто-нибудь может пролить свет на это?

На заметку о том, есть ли лучший способ построить календарь, чем этот?

Обновление: Кажется, если я не установил локаль, на которой он работает нормальноустройство, но на симуляторе это не так.Если я установлю для en_US локаль, то ни одна из них не будет работать.Я в Осте, если это что-то изменит, но я уверен, что и в США, и в Осте один и тот же календарь: /

Ответы [ 3 ]

0 голосов
/ 18 марта 2010

Кажется, нет решения для этого. Изменение часового пояса на устройстве не вызывает проблем, и во всех выходных данных журнала указывается правильный часовой пояс, но NSDate, похоже, извлекает часовой пояс из двух разных мест на симуляторе, вероятно, один для Купертино и один для локального.

Глядя на решение других людей для получения первого дня месяца, оно совпадает с моим кодом (странно, потому что я не копировал), и никто не сообщил о проблеме, возможно, эти пользователи были в США, и поэтому проблема не всплыла Изменение часового пояса на компьютере тоже ничего не делает.

0 голосов
/ 25 августа 2010

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

0 голосов
/ 17 марта 2010

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

Вы, вероятно, хотите [[NSCalendar currentCalendar] firstWeekDay].

...