I know how to get the list of known timezones: [NSTimeZone knownTimeZoneNames]
.
But this method returns only time zone names (like "Africa/Abidjan").
How can I get GMT value (like GMT+3
or GMT-7
)for each of known time zone from that array?
In general, create an NSTimeZone
instance for each time zone name and then get the secondsFromGMT
property from each instance:
for (NSString *name in [NSTimeZone knownTimeZoneNames]) {
NSTimeZone *tz = [NSTimeZone timeZoneWithName:name];
NSInteger gmtOffset = tz.secondsFromGMT;
}
The only outstanding issue would be converting from seconds to hours or hours/minutes, which shouldn't be too difficult. Perhaps the default [NSTimeZone description]
would return the correct information?