2016-05-25 10 views
1

私は知られているタイムゾーンのリストを取得する方法を知っています:[NSTimeZone knownTimeZoneNames]knownTimeZoneNamesから各タイムゾーンのGMT値を取得する方法

しかし、このメソッドはタイムゾーン名(Africa/Abidjanなど)のみを返します。

そのアレイの既知のタイムゾーンごとにGMT値(GMT+3またはGMT-7など)を取得するにはどうすればよいですか?一般的に

答えて

1

、各タイムゾーン名のNSTimeZoneインスタンスを作成し、各インスタンスからsecondsFromGMTプロパティを取得:

for (NSString *name in [NSTimeZone knownTimeZoneNames]) { 
    NSTimeZone *tz = [NSTimeZone timeZoneWithName:name]; 
    NSInteger gmtOffset = tz.secondsFromGMT; 
} 

だけ優れた問題は、時間または時間/分、秒から変換されるであろうあまりにも難しいはずがありません。おそらくデフォルトの[NSTimeZone description]が正しい情報を返しますか?

+0

ありがとうございます。私は実際にリンゴの文書を今読んで同じ方法を見つけました))) –

+1

結果が常に同じではないことを覚えておいてください。 :) –

0

また、出力が@"GMT+03:00"なります

NSTimeZone *timeZone = [NSTimeZone timeZoneForSecondsFromGMT:secondsFromGMT]; 
NSMutableString *name = [NSMutableString stringWithString:timeZone.name]; 
if (! [name isEqualToString:@"GMT"]) 
{ 
    [name insertString:@":" atIndex:6]; 
} 
return [NSString stringWithString:name]; 

方法timeZoneForSecondsFromGMTを使用することができます。数時間から数分で構築する必要はありません。

関連する問題