2011-06-08 3 views
0
NSLog(@"%@", self.departDate); 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MM/dd/yyyy"]; 
NSLog(@"%@", [dateFormat stringFromDate:self.departDate]); 
[dateFormat release]; 

Поэтому у меня есть этот код, который возвращает это в консоли:Dateformatter iPhone вопрос

2011-06-09 00:00:00 +0000 
06/08/2011 

Любые идеи, почему это происходит? Как вы можете видеть, мой объект self.departDate возвращает 2011-06-09 как дату. Когда я пытаюсь использовать форматирование даты для преобразования, я теряю день WTF?

ответ

0

Первый журнал соответствует дате GMT. Однако, когда вы создаете экземпляр NSDateFormatter, у него будет установлен часовой пояс по умолчанию для часового пояса пользователя, который, как я предполагаю, вероятно, находится где-то к западу от Гринвича. Если вы хотите, чтобы время осталось в GMT, вам нужно будет добавить эту строку,

[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];