6

CまたはObjective-Cを使用して、各国の日光のデイビングが開始および終了する特定の日付(方法)を取得する方法はありますか?

メキシコでは、夏時間は4月の第1日曜日の午前2時に始まり、10月の最終日曜日の午前2時に終わります。多くのPOSIXシステムでは、これは次のように記述されます。

M4.1.0/2,M10.5.0/2
(Begins: Month 4, 1st Sunday at 02:00AM, Ends: Month 10, last Sunday at 02:00AM)

夏時間が現在アクティブであるかどうかを知ることができることを私は知っています

NSTimeZone* systemTimeZone = [NSTimeZone systemTimeZone];
BOOL dstIsOn = [systemTimeZone isDaylightSavingTime];

Daylight Savingsそして次が始まるまでの時間を得ることが可能であること

NSTimeZone* systemTimeZone = [NSTimeZone systemTimeZone];
NSTimeInterval delta = [systemTimeZone daylightSavingTimeOffset];

しかし、夏時間が開始/終了する特定の日を見つけるにはどうすればよいですか?

私が見つけることができなかったキラーテーブルはありますか?

どんな助けでも大歓迎です!

4

1 に答える 1

8

はい、あります -[NSTimeZone nextDaylightSavingTimeTransitionAfterDate:]メソッドを使用できます。これは、オフセットが何であるかを確立するNSDateために使用できる を返します。daylightSavingTimeOffsetForDate

通常、これを使用して次のオフセットを見つけますが、明らかに、異なる日付で複数回実行して、今後の一連の夏時間の変更を取得できます。nextDaylightSavingTimeTransition常に次のトランジションを返す便利なメソッドもあります。

于 2013-03-18T10:03:22.580 に答える