2016-06-21 2 views
0

Я пытаюсь инкапсулировать время с помощью NSDateComponents .. но это дает мне 1979-05-10 08:30:00 +0000 .... какое значение должно быть установлено для setTimeZone: дайте мне в моем часов по местному времени (GMT + 2), которые должны быть 1979-05-10 10:30:00 +0000Как установить часовой пояс на NSDateComponents

NSDateComponents *comp = [[NSDateComponents alloc] init]; 
[comp setYear:1979]; 
[comp setMonth:5]; 
[comp setDay:10]; 
[comp setHour:10]; 
[comp setMinute:30]; 
[comp setTimeZone:]; 
+0

Вы посмотрели документацию? https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSTimeZone_Class/ –

ответ

0

Вы можете использовать +(NSTimeZone) timeZoneForSecondsFromGMT:. Для преобразования часов в секунды, умножить на 3600.

Примеры:

Для GMT + 2

[NSTimeZone timeZoneForSecondsFromGMT:3600*2] 

Для GMT-2

[NSTimeZone timeZoneForSecondsFromGMT:-3600*2] 

Чтобы получить временную зону локального на ваше устройство:

[NSTimeZone localTimeZone] 
+0

Я установил нуль для 'timeZoneForSecondsFromGMT' not (3600 * 2), чтобы получить правильное время: 1979-05- 10 10:30:00 +0000 Можете ли вы объяснить, почему? .. Это правильный способ сделать это ?: 'NSTimeZone * local = [NSTimeZone timeZoneForSecondsFromGMT: 0]; NSDateComponents * comp = [[NSDateComponents alloc] init]; [comp комплект год: 1979]; [comp setMonth: 5]; [comp setDay: 10]; [comp setHour: 10]; [comp setMinute: 30]; [comp setTimeZone: local]; ' –