2013-03-22 93 views
1

我只需要日期時間格林威治標準時間抵消。我用這個方法格林尼治標準時間在目標c中的日期抵消

double numberOfHours = (double)[timeZone secondsFromGMTForDate:date]/ 3600.0; 

其實在德國柏林,DST將是對在2013年3月31日和時間將在凌晨2:00變更。 問題是我想要格林威治標準時間偏移僅使用日期。如果日期= 31-3-2013 00:00:00那麼它返回+1。它在31-3-2013 02:00:00之後返回+2。有什麼方法/方法可以在不使用時間組件的情況下獲得時區偏移?

+0

不需要強制轉換雙倍,任何一個都可以。和3600.0將是雙倍的。 – 2013-03-22 10:13:41

回答

1

如果你想避免使用時間組件。您可以使用這些方法

nextDaylightSavingTimeTransitiondaylightSavingTimeOffsetForDate:NSDate

NSTimeZone

1

如何將您的約會時間更改爲一天中的時間並進行測試?

但是,沒有任何時間組件的所有日期將默認爲午夜,您將得到(正確的時間)+1的結果。

+0

3月31日時間正在改變(+1至+2)。我不需要使用時間組件就需要+2在3月31日。 – user2163780 2013-03-22 10:25:38

+1

爲什麼你會認爲這是可能的?這不是一個真實的陳述。在那天的午夜,它是+1。爲什麼不能在計算之前添加時間分量? – borrrden 2013-03-22 13:23:38

1

您可以使用NSDateFormatter自定義日期格式,如@"zzz",它將返回給定NSDate的時區偏移量。

相關問題