Цель C - Как получить необработанное смещение (без DST), используя NSTimeZone
Я хотел бы получить сырое смещение от GMT. Я знаю, что ответ может быть таким:
NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"Europe/Berlin"];
NSInteger *offset = [zone secondsFromGMT];
(как здесь: iOS - Как получить сырое смещение для часового пояса?)
Но проблема в том, что это не дает мне необработанное смещение (для Берлина +1), а только смещение с DST (+2), то есть для текущей даты.
1 ответ
Решение
NSTimeZone
имеет свойство daylightSavingTimeOffset
which returns the difference to the raw offset
NSTimeZone *zone = [NSTimeZone timeZoneWithName:@"Europe/Berlin"];
NSTimeInterval rawOffset = [zone secondsFromGMT] - [zone daylightSavingTimeOffset];