Не удалось установить NSTimeZone в необходимый формат - PullRequest
1 голос
/ 05 марта 2012

У меня есть TimeZone в качестве значения NSString, заданного как «GMT-09: 00».

Все, что я хочу, это настроить мою NSTimeZone с этим форматом.Я пытался, но не смог этого сделать.Это время может меняться каждый раз, поэтому я не могу установить его как статический в методе

например.я не могу этого сделать - timeZoneForSecondsFromGMT: (- 9 * 3600).

Кроме того, могу ли я преобразовать вышеуказанный формат (GMT-09: 00) в количество секунд, так или иначе ??

РЕДАКТИРОВАТЬ: я просто хочу установить часовой пояс на определенный формат GMT.Это может быть что угодно, GMT-09: 00, GMT + 05: 30 и т. Д.

Если бы это было статическое значение, я мог бы использовать следующий метод для NSTimeZone.

[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:(-9*3600)]];

Но значение «GMT-09: 00» является строкой NSString.Поэтому каждый раз мне приходилось ломать строку и получать значения часов и минут.Есть ли более простой способ ?????

Спасибо за помощь!

Ответы [ 2 ]

4 голосов
/ 05 марта 2012

вы пробовали что-то подобное?

NSString *tzStr = @"GMT-09:00";
NSTimeZone *tz = [[NSTimeZone alloc] initWithName:tzStr];
NSLog(@"Tz: %@", tz);
NSLog(@"Offset: %d", [tz secondsFromGMT]);

// Tz: GMT-0900 (GMT-09:00) offset -32400
// Offset: -32400

тоже работает с @"GMT+5:30".

// Tz: GMT+0530 (GMT+05:30) offset 19800

, а затем просто используйте [formatter setTimeZone:tz];

0 голосов
/ 07 января 2016

это полезно для вас.оптимизированная помощь

float offsetSecond = ([[NSTimeZone systemTimeZone] secondsFromGMT] / 3600.0);
...