2012-08-29 3 views
0

Я использую следующий код, чтобы установить дату объекта:NSDate рано на 1 час?

NSDate *date = [NSDate date]; 
     NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar]; 
     NSDateComponents *components = [gregorian components: NSUIntegerMax fromDate: date]; 
     [components setHour: 18]; 
     [components setMinute: 00]; 
     [components setSecond: 00]; 

     reminderDate = [gregorian dateFromComponents: components]; 

Однако, когда я NSLog reminderDate я получаю следующий результат:

Time: 2012-08-29 17:00:00 +0000 

Который является рано на один час, может кто-нибудь объяснит, что мне нужно сделать, чтобы сохранить правильную дату в reminderDate?

Спасибо,

Tysin

+0

Возможный дубликат [Получение даты с \ [NSDate date \] выключено на несколько часов] (http://stackoverflow.com/questions/8466744/getting-date-from-nsdate-date-off-by-a -few-hours) –

ответ

2

Что часовой пояс? Если вы заметили, дата, на которую вы печатаете, имеет +0 часовой пояс, поэтому, если ваш часовой пояс равен +1, все правильно.

+0

Я пробовал установить часовой пояс, чтобы использовать мой местный часовой пояс с NSTimeZone localTimeZone, но не было никаких изменений. В настоящее время я нахожусь в Британском летнем времени, которое является GMT + 1 –

+1

Это означает, что дата в журнале корректно, так как он отображается без часового пояса, поэтому +0000 – rckoenes

+0

Дата в журнале неправильная, если я это делаю: NSLog (@ «Текущая дата:% @», [NSDate date]); дата печати также на 1 час раньше, чем она должна быть. –

Смежные вопросы