2014-01-16 57 views
0

我正在試圖根據特定時區的日光狀態獲取DST偏移量。Pacific/Auckland和2014年1月14日的isDaylightSavingTimeOffsetForDate是否爲真?

我的問題是

[timeZone isDaylightSavingTimeForDate:date] 

總是時區的 「奧克蘭/新西蘭」 及日期 「01-JAN-2014」 返回true。這應該是錯誤的,因爲奧克蘭的夏令時從四月開始,到九月結束。

+1

你可以告訴你正在使用的代碼(包括你如何得到的時區和日期)?還包括時區,日期和返回值的日誌輸出isDaylights ... –

+1

順便說一句,我假設你的代碼應該使用'isDaylightSavingTimeForDate:'而不是'isDaylightSavingTimeZone:'(它不存在和看起來像一個錯字) –

+1

夏令時數據存儲在iOS中。我不確定它是否會定期更新。考慮一個例子,在一個國家A夏令時從四月開始,到八月結束。如果A國政府決定將其從4月份更改爲6月份,則不會在iOS中更新。所以,如果您需要精確度和更新,請使用一些第三方API來確定夏令時。 http://www.timeanddate.com/worldclock/city.html?n=22 –

回答

3

http://www.timeanddate.com/worldclock/city.html?n=22, 夏令時始於9月四月份在奧克蘭 (這是有道理的,因爲它是南半球)結束

所以你的結果是正確的:「01-Jan-2014」是在夏季和夏令時 時間是活動的。

注意(大衛上述評論),正確的調用是

[timeZone isDaylightSavingTimeForDate:date] 
+0

哈哈!我查看了這些數據,並沒有意識到它列出了它先結束的月份,然後是月份後的月份。 –

+0

Eeeee !!對不起,我的錯誤信息,但我的應用程序中有一個日曆。明尼阿波利斯的系統日曆和應用程序日曆根據DST進行匹配,但根據您所說的,我的系統日曆不會根據奧克蘭的DST顯示更改。 – user3202263

+0

@ user3202263:對不起,我不明白。奧克蘭的夏令時從九月到四月,所以*一月份* *夏令時。 - 現在你的代碼使用'daylightSavingTimeOffsetForDate:'?那會在你的日期返回3600。你的意思是'isDaylightSavingTimeForDate:'? –

相關問題