gpt4 book ai didi

ios - 无需夏令时调整即可快速创建 EKEvent

转载 作者:行者123 更新时间:2023-11-30 11:35:47 25 4
gpt4 key购买 nike

我的应用程序中有一个功能可以将事件添加到日历中,该过程涉及解析日期的字符串表示形式(使用夏令时调整,并将 EKEvent startDate 设置为它,这里是一个片段:

let eventStore : EKEventStore = EKEventStore()
eventStore.requestAccess(to: .event) { (granted, error) in
if (granted) && (error == nil) {
let event:EKEvent = EKEvent(eventStore: eventStore)

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm"
// Just for demonstration
let myStartingDate = "16-04-2018 14:00:00"

if let eventDate = dateFormatter.date(from: myStartingDate) {
event.title = "Test event"

event.startDate = eventDate

event.endDate = eventDate.addingTimeInterval(TimeInterval(120 + 20 * 60))
event.notes = "This is a note"
event.location = "some location"
event.calendar = eventStore.defaultCalendarForNewEvents
do {
try eventStore.save(event, span: .thisEvent)

// Success, now open the calendar.
self.openCalendarOn(date: eventDate)

} catch let error as NSError {
print("failed to save event with error : \(error)")
}
}
}
}

一段时间内一切都按预期进行,但自从英国夏令时过渡以来,我注意到日历上的事件提前一小时

例如,我设置的事件是“16-04-2018 14:00:00”,但日历日期是“16-04-2018 15:00:00”。

有没有办法告诉 EKEvent 禁用夏令时调整?因为我的字符串日期已经在其中了。

最佳答案

我发现了问题,显然我正在构造时区为 gmt+00:00 的 DateFormatter 对象,删除时区后,ios 日历上的时间保持不变。

关于ios - 无需夏令时调整即可快速创建 EKEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49792747/

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