2011-10-18 32 views
0

我想從NSDate訪問只是小時和分鐘的信息。NSCalendar和NSDate incompatibilty

所以我用NSCalendar來做到這一點。以下是我的代碼:

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"hh:mm"]; 
    NSDate *date = [NSDate date]; 
    NSCalendar *calendar = [NSCalendar currentCalendar]; 
    NSDateComponents *components = [calendar components:(kCFCalendarUnitHour | kCFCalendarUnitMinute) fromDate:date]; 
    NSInteger hour = [components hour]; 
    NSInteger minute = [components minute]; 
    NSLog(@"%@",date description); 
    NSLog(@"Hour : %d MInutes: %d",hour,minute); 

它沒有給我正確的信息。以下是日誌:

2011-10-18 18:46:12.194 DateTest [1182:707] 2011-10-18 13:16:12 +0000 2011-10-18 18:46:12.198 DateTest [1182:707]小時:18 MInutes:46

另一個疑問是,當時間是18:46:12.194它記錄爲13:16:12。爲什麼這種差異?

回答

2

因爲您居住的時區比GMT時間早5.5小時,而NSDate-description方法始終會返回格式化爲GM時區的字符串。

+0

戴夫,謝謝。時區是問題。 – Krishnan