gpt4 book ai didi

ios - EKEventEditViewController 开始日期不正确

转载 作者:行者123 更新时间:2023-12-01 16:53:18 24 4
gpt4 key购买 nike

我有一个 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.

最佳答案

这是因为“2012-12-19 20:00:00 +0000”(即格林威治标准时间晚上 8 点)的事件将在午夜在马里蒂斯举行。您要求毛里求斯的用户将其添加到他们的日历中,因此它将在设备的本地时区午夜显示事件日期。

如果事件发生在毛里求斯晚上 8 点,那么您的原始时间不正确,因为您说的是格林威治标准时间晚上 8 点。如果您说该事件确实发生在格林威治标准时间晚上 8 点(毛里求斯午夜),那么 EKEventEditViewController只是要根据本地时区午夜显示时间。

如果用户有turned on timezone support ,当他们在日历应用程序中拉起事件时,它将显示您在创建事件时指定的时区。如果他们没有打开时区支持,它只会在本地时区显示(调整开始时间)。

不幸的是,与日历应用不同的是,EKEventEditViewController即使用户打开了时区支持,也不会显示时区,而是以本地时间显示。它似乎不支持这个时区功能,即使当他们查看日历时它是正确的。至少事件与适当的时区信息一起存储。

关于ios - EKEventEditViewController 开始日期不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13918593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com