Я предполагаю, что вы используете часовой пояс CET локально. Это то, что [NSCalendar currentCalendar]
будет использовать в качестве часового пояса.
Когда вы выгружаете NSDate
с помощью NSLog, вы получите дату в необработанном формате UTC. Чтобы напечатать дату в локальном формате, посмотрите на класс NSDateFormatter
, который имеет свойство timeZone
:
....
NSDate *date = [cal dateFromComponents:comp];
NSDateFormatter* fmt = [[NSDateFormatter alloc] init];
fmt.timeZone = [NSTimeZone defaultTimeZone]; // Probably not required
NSLog(@"date:%@", [fmt stringFromDate:date]);