2016-05-25 47 views

回答

1

在一般情況下,每個時區的名稱創建一個NSTimeZone實例,然後從每個實例得到secondsFromGMT屬性:

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

唯一懸而未決的問題會從秒轉換爲小時或幾小時/分鐘,這不應該太難。也許默認[NSTimeZone description]會返回正確的信息?

+0

非常感謝。我現在通過閱讀蘋果文檔發現了相同的方式))) –

+1

只要記住,結果並不總是相同的。 :) –

0

您還可以使用方法timeZoneForSecondsFromGMT

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

輸出將被@"GMT+03:00"。你不需要從幾小時和幾分鐘就構建它。