2011-08-25 63 views
0

我一直在關注蘋果文檔以及這裏的一些代碼,我似乎無法讓NSDateComponents正常工作。正確使用NSDateComponents

NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *components = [calendar components:(NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:dateValue]; 
[calendar release]; 

dateValue是某個日期,我只關心它的時間,而時間是上午8:00。當我在此之後查看哪些組件時,小時和分鐘均爲零。

我也試過將這個,是因爲我讀了你需要(雖然不是每個例子有這個):

[components setCalendar:calendar]; 

回答

2

該代碼將工作。也許這是因爲你試圖錯誤地訪問小時和分鐘。我這樣做,並獲得當前的小時和分鐘在控制檯窗口:

NSDate *dateValue = [NSDate date]; 
NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDateComponents *components = [calendar components:(NSHourCalendarUnit|NSMinuteCalendarUnit) fromDate:dateValue]; 
NSLog(@"hour: %d, minute: %d", [components hour], [components minute]); 
[calendar release]; 

-hour-minute回普通整數,而不是NSNumber的對象。

+0

它實際上與日曆有關。我想我一直在不停地檢查同一時間,事實上我的日曆是-8我認爲的時區,所以我變得0。 – JPC