Я пытаюсь получить все события за один день из экземпляра EKEventStore, используя eventsMatchingPredicate:, но, как я читал, для объектов NSDate по умолчанию установлено значение GMT, а для EKEventStore — нет. Итак, мой вопрос: как изменить часовой пояс EKEventStore или настроить объекты NSDate, чтобы время не сбивалось для каждого часового пояса?
Например, я нахожусь в GMT -0600 и щелкаю 16 и 17 января в TKCalendarMonthView, который я использую для пользовательского интерфейса календаря, и показывает День Мартина Лютера Кинга в обе даты. Время начала — 6:00 16 января, а время окончания — 5:59 17 января (из-за моего часового пояса), а не начало в 00:00 и продолжительность до 23: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];
}