iPhone - Как получить смещение часового пояса? - PullRequest
4 голосов
/ 04 августа 2011

У нас есть класс NSTimeZone, который рассказывает больше о часовом поясе.Но я хочу получить только смещение времени.Например: +05.30 - это смещение для Inida. Другими словами, смещение времени по отношению к UTC.

Одна из проблем следующего кода состоит в том, что он дает сбой в симуляторе 4.3 и работает нормально с симулятором 4.2.Поскольку симулятор 4.2 выдает выходные данные со ссылкой на GMT, а симулятор 4.3 - со ссылкой на IST

NSString* tzDescription = [[NSTimeZone systemTimeZone] description];
NSArray* tzArray = [tzDescription componentsSeparatedByString:@"GMT"];
NSString* gmtStr = [[tzArray objectAtIndex:1] substringToIndex:6];

, я не смог найти универсальное решение.

1 Ответ

5 голосов
/ 04 августа 2011

Я думаю, что вы можете использовать NSDate и класс NSDateFormatter, чтобы получить смещение часового пояса.Вы можете сделать это следующим образом.

NSDate *date = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc]
initWithDateFormat:@"zzz" allowNaturalLanguage:NO];
NSString *zoneOffset = [dateFormat stringFromDate:date];

Так что в zoneOffset теперь у вас будет нужная вещь.

...