Вопрос

I have a TimeZone as NSString value given as "GMT-09:00".

All I want is to setup my NSTimeZone with this format. I tried but wasn't able to do this. This time may vary every time so i can't set it as static in the method

eg. i can't do this -- timeZoneForSecondsFromGMT:(-9*3600).

Also, can I convert the above format (GMT-09:00) into number of seconds anyhow??

EDIT : I just want to set the time zone to a specific GMT format. It could be anything, GMT-09:00, GMT+05:30, etc.

If it was a static value I could have used the below method for NSTimeZone.

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

But the value "GMT-09:00" is an NSString. So everytime, I would have to break the string and get the values for Hours and minutes. Is there an easier way?????

Thanks for the help!

Это было полезно?

Решение

have you tried something like this?

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

works with @"GMT+5:30" too.

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

and then just use [formatter setTimeZone:tz];

Другие советы

this one is helpful to you. optimized help

float offsetSecond = ([[NSTimeZone systemTimeZone] secondsFromGMT] / 3600.0);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top