NSCalendar和NSDate不兼容

时间:2011-10-18 13:23:01

标签: nsdate nscalendar nsdatecomponents

我正在尝试从NSDate访问小时和分钟信息。

所以我使用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分钟:46

另一个疑问是当时间是18:46:12.194时,它被记录为13:16:12。为什么会有这种差异?

1 个答案:

答案 0 :(得分:2)

因为您居住的时区比GMT早5.5小时,NSDate的{​​{1}}方法始终返回GM时区格式的字符串。