UTC で最後の日曜日の正午を参照する日付スタンプが必要です。前の日曜日の午前 12:00 の動的作成日 から非常に近いものを取得しました。
NSDate *today = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[calendar setLocale:[NSLocale currentLocale]];
NSDateComponents *nowComponents = [calendar components:NSYearCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:today];
[nowComponents setWeekday:1]; //Sunday
[nowComponents setHour:12]; // noon
[nowComponents setMinute:0];
[nowComponents setSecond:0];
NSDate *previousSunday = [calendar dateFromComponents:nowComponents];
しかし、これによりNSDate
、「現在のタイムゾーンの正午」のオブジェクトが得られます。これは、「GTM/UTC の正午」と一致しないことがよくあります。タイムゾーンを考慮してこの日付を修正するにはどうすればよいですか?