Цель C - Как получить необработанное смещение (без перехода на летнее время) с помощью NSTimeZone

Я хотел бы получить необработанное смещение от GMT. Я знаю, что ответ может быть таким:

NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"Europe/Berlin"];
NSInteger *offset = [zone secondsFromGMT];

(например, здесь: iOS - Как получить необработанное смещение для часового пояса?)

Но проблема в том, что он дает мне не сырое смещение (для Берлина +1), а только смещение с летним временем (+2), то есть для текущего Дата.


person schmidt9    schedule 13.08.2015    source источник


Ответы (1)


NSTimeZone имеет свойство daylightSavingTimeOffset, которое возвращает разницу в необработанное смещение.

NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"Europe/Berlin"];
NSTimeInterval rawOffset = [zone secondsFromGMT] - [zone daylightSavingTimeOffset];
person vadian    schedule 13.08.2015
comment
Спасибо! Кажется, это правильный ответ в отношении конкретно необработанного смещения. - person schmidt9; 13.08.2015