2013-03-12 2 views
3

Я пытаюсь sethours в NSDateComponents, я написал следующий кодsethours в NSDateComponents

NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *dateComps = [[NSDateComponents alloc] init]; 

[dateComps setDay:intDay]; 
[dateComps setMonth:intMonth]; 
[dateComps setYear:intYear]; 
[dateComps setHour:intHoures]; 
[dateComps setMinute:intMinutes]; 

NSDate *itemDate; 
itemDate = [calendar dateFromComponents:dateComps]; 

NSLog(@"reminder date: %@", itemDate); 

, но когда я установить часы в 13, он устанавливает его как 11. Я хочу часов в 24 стиле. Кто-нибудь может помочь мне в этом вопросе?

Спасибо заранее.

+1

Когда вы NSLog NSDate, вы всегда увидите GMT. Если вы хотите увидеть дату в другом часовом поясе, вам нужно будет использовать NSDateFormatter. –

+0

Не могли бы вы показать мне, как использовать timeZone здесь? –

ответ

4

Разница во время в часах показывает, что у вас может быть проблема с часовым поясом, вы можете попытаться установить часовой пояс на сегодняшний день, я знаю, что NSDateFormatter имеет timeZone собственности, я сомневаюсь, что если NSDateComponents есть TIMEZONE собственность. Однако вы можете установить timeZone для календаря

[calendar setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 
+0

не могли бы вы показать мне пример кода о том, как использовать timeZone здесь? –

+0

обновлено в ответе – nsgulliver

+0

Я добавил его, он дает мне 12 вместо 13 и 9 вместо 10. –