2012-12-17 3 views
2

EKEventEditViewController를 사용하여 내 앱에 캘린더 이벤트를 추가하는 EKEvent가 있습니다. 날짜가 정확하더라도 잘못된 시간이 표시됩니다. 누군가가EKEventEditViewController 시작 날짜가 잘못되었습니다.

EKEvent *addEvent=[EKEvent eventWithEventStore:eventStore]; 
addEvent.title=event.title; 
NSLog(@"Saving Event... %@",[event.date description]); 
addEvent.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 
addEvent.startDate= event.date; 
NSLog(@"Event Date... %@",[addEvent.startDate description]); 
addEvent.endDate=[addEvent.startDate dateByAddingTimeInterval:600]; 
[addEvent setCalendar:[eventStore defaultCalendarForNewEvents]]; 
addEvent.alarms=[NSArray arrayWithObject:[EKAlarm alarmWithRelativeOffset:-3600]]; 

내 장치의 시간대는 '포트 루이스, 모리셔스'로 설정 ..

이벤트를 생성하는 코드입니다 .. 제가 잘못 여기서 뭐하는 거지 알아내는 데 도움이 될 수 있습니다.

내 콘솔 출력은 ..

Saving Event... 2012-12-19 20:00:00 +0000 
Event Date... 2012-12-19 20:00:00 +0000 

그러나 EKEventEditViewController에서

, 내 시작 날짜가 표시는 Thu,20 Dec 0:00.

+0

귀하의 일정은 GMT 8시 또는 8시 (GMT + 4)입니까? – Rob

답변

0

그 이유 2012년 12월 19일 20시 0분 0초 0000 "에서 이벤트 "(즉, GMT 8시), 자정에 마리 티 우스에서 열린다. 사용자는 모리셔스 사용자에게 캘린더에 추가하도록 요청하므로 기기의 로컬 시간대 인 자정에 이벤트 날짜가 표시됩니다.

모리셔스에서 오후 8시에 이벤트가 열리는 경우 GMT 오후 8시라고되어 있기 때문에 원래 시간이 틀립니다. 이벤트가 실제로 GMT 오전 8시 (모리셔스에서 자정)에 열리고 있다고 말하면 EKEventEditViewController은 현지 시간대 인 자정에 따라 시간을 표시합니다.

사용자가 turned on timezone support 인 경우 캘린더 앱에서 일정을 가져 오면 짝을 만들 때 지정한 시간대가 표시됩니다. 시간대 지원을 사용 설정하지 않은 경우 현지 시간대에 표시됩니다 (시작 시간을 조정해야 함).

캘린더 앱과 달리 EKEventEditViewController은 사용자가 시간대 지원을 사용 설정 한 경우에도 시간대를 표시하지 않고 현지 시간으로 표시합니다. 이 달력은 달력을 볼 때 정확할지라도이 시간대 기능을 지원하는 것으로 보이지 않습니다. 적어도 이벤트는 적절한 시간대 정보와 함께 저장됩니다.

관련 문제