2013-03-12 64 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。 – 2013-03-12 20:40:21

+0

你能告訴我如何在這裏使用timezone嗎? – 2013-03-12 20:45:03

回答

4

時差表明你可能有帶有時區的問題,你可以嘗試設置日期的時區,我知道NSDateFormattertimeZone房產,我懷疑NSDateComponents存在時區屬性。但是你可以設置日曆的時間區域

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

你能告訴我如何使用timezone在這裏的示例代碼? – 2013-03-12 20:45:32

+0

更新了答案 – nsgulliver 2013-03-12 20:46:35

+0

我添加了它,它給了我12而不是13和9而不是10. – 2013-03-12 20:49:23