NSCalendar и NSDate несовместимы - PullRequest
0 голосов
/ 18 октября 2011

Я пытаюсь получить доступ только к информации о часах и минутах с 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 Ответ

2 голосов
/ 18 октября 2011

Поскольку вы живете во временном поясе, который на 5,5 часов опережает время по Гринвичу, а метод NSDate -description всегда возвращает строку, отформатированную в часовом поясе GM.

...