2011-08-04 8 views
4

タイムゾーンについて詳しく説明するNSTimeZoneクラスがあります。 しかし、私は時間のオフセットだけを取得したい。たとえば、+ 05.30はInidaのためにオフセットされます つまり、UTCを基準にした時間のオフセットです。iPhone - タイムゾーンのオフセットを取得するには?

次のコードに関する1つの問題は、4.3シミュレータでクラッシュし、4.2シミュレータで正常に動作することです。 4.2シミュレータは

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

をISTにGMTを基準と参照して4.3シミュレータで出力を与えているので、私は一般的なもので解決策を見つけることができませんでした。

答えて

5

NSDateとNSDateFormatterクラスを使用してタイムゾーンオフセットを取得できると思います。あなたは次のようにそれを行うことができます。

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

これで、必要なものがゾーンオーバーになります。

+1

nice ARCにないときにdateFormatを解放することを忘れないでください。 –

関連する問題