iPhone アプリで予定をカレンダーに追加する際に問題が発生します。
私はコードを使用しています:
EKEventStore *eventStore = [[EKEventStore alloc] init];
EKEvent *event = [EKEvent eventWithEventStore:eventStore];
event.title = self.event.eventTitle;
event.startDate = self.event.startDate;
event.endDate = self.event.endDate;
event.notes = self.event.description;
[event setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError *err;
[eventStore saveEvent:event span:EKSpanThisEvent error:&err];
event
これで、カレンダーにが追加されます。問題は、タイムゾーンが明らかにずれていることです。たとえばself.event.startdate
、デバッガーの出力012-05-11 20:45:00 +0000
は です。これは正しいです。しかし、カレンダーを見ると、予定が午後 4 時 45 分に追加されていました( 20 時 45 分や8 時 45 分ではありません)。
po イベントを使用してイベント オブジェクト全体を出力すると、次のようになります。
EKEvent <0xf853320> {EKEvent <0xf853320> {title = Tuesday Night Lights!; location = (null); calendar = (null); alarms = (null); URL = (null); lastModified = (null); timeZone = EST (GMT-05:00) offset -18000}; location = (null); startDate = 2012-05-11 20:45:00 +0000; endDate = 2012-05-11 21:45:00 +0000; allDay = 0; floating = 0; recurrence = (null); attendees = (null)}
ここでもstartDate
正しく読み取ります。私はESTタイムゾーンにいます (電話と同様)。コードを取得して、午後 8 時 45 分に予定をカレンダーに追加するにはどうすればよいですか?
どんな考えでも非常に役に立ちます!