eventsMatchingPredicate: を使用して EKEventStore のインスタンスから 1 日のすべてのイベントを取得しようとしていますが、私が読んだように、NSDate オブジェクトはデフォルトで GMT に設定されていますが、EKEventStore はそうではありません。私の質問は、EKEventStore のタイムゾーンを変更したり、タイムゾーンごとに時間がずれないように NSDate オブジェクトを調整したりするにはどうすればよいですか?
たとえば、私は GMT -0600 にいて、カレンダー UI に使用している TKCalendarMonthView で 1 月 16 日と 17 日をクリックすると、両方の日付に Martin Luther King Day が表示されます。開始時刻は 1 月 16 日の午前 6 時で、終了時刻は 1 月 17 日の午前 5 時 59 分 (私のタイムゾーンの結果) であり、午前 0 時に開始して午後 11 時 59 分まで続くのではありません。イベントの取得に使用されるコードは次のとおりです。
- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)d {
// Update tableData with event data from date
[tableData removeAllObjects];
NSArray *a = [systemCalendar eventsMatchingPredicate:[systemCalendar predicateForEventsWithStartDate:d endDate:[NSDate dateWithTimeInterval:84600 sinceDate:d] calendars:nil]];
[tableData addObjectsFromArray:a];
[self.eventsTable reloadData];
}