2012-12-27 106 views
2

在我的iPhone應用程序中,我想獲得格林尼治標準時間的系統時區。是使用下面的代碼。如何獲得格林威治標準時間格式在iOS6

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    dateFormatter.dateFormat = @"zzz"; 
    [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; 
    NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]]; 
    NSString *timeZoneString=[timeStamp substringFromIndex:3]; 
    [dateFormatter release]; 

我在iOS5中獲取GMT格式的時區,但不是在iOS6中。如何在iOS6中以GMT格式獲取時區?請幫忙!!!

+0

這個怎麼樣,'[dateFormatter setTimeZone:setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0];'代替' [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];'?那樣有用嗎? – iDev

+0

你在iOS6中獲得了什麼? – Thilo

+0

可能abbreviationDictionary(NSTimeZone的類方法)正在導致您的問題。在ios5&ios6中檢查日誌記錄的abbreviationDictionary,你會看到不同之處。但是你可以改變它。 –

回答

0

我修改了@ACB的代碼,因爲有幾個拼寫錯誤,請嘗試[dateFormatter setTimezone:[NSTimeZone timeZoneForSecondsFromGMT:0]];而不是[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];。這似乎對我有用。

我想給@ACB這個答案的功勞。他/她想出了這個技巧,我只確認了它。

+0

感謝您的確認。我已添加爲答案。這是我發佈之前無法驗證的猜測,因此添加爲評論。 – iDev

+0

你想我擦除這個答案嗎? –

+0

這實際上是你的願望。無論如何謝謝你的確認。 – iDev

2

你可以檢查一下,

[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; 
代替

[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]]; 
相關問題