iOS日历为太平洋标准时区的事件添加了错误的日期



我正在尝试在预订活动后将活动添加到iPhone日历中。但它只为太平洋时区的用户添加了前一天同一时间的活动。谢谢

let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy, hh:mm:ss a"
dateFormatter.timeZone = TimeZone(abbreviation: "UTC")
let localDate = dateFormatter.date(from: dateFormatter.string(from:            session.startDate))
dateFormatter.timeZone = TimeZone.current
dateFormatter.dateFormat = "MM/dd/yyyy, hh:mm:ss a"
let str = dateFormatter.string(from: date)
print(str)


let newStartDate = dateFormatter.date(from:dateFormatter.string(from:
localDate!))!

calendarEvent.location = eventLocation
calendarEvent.startDate = dateFormatter.date(from: str)
calendarEvent.endDate = dateFormatter.date(from: str)!.addingTimeInterval(Double(session.duration) * 60.0)

您永远不会使用常量newStartDate

你有这个:

let newStartDate = dateFormatter.date(from:dateFormatter.string(from:
localDate!))!

calendarEvent.location = eventLocation
calendarEvent.startDate = dateFormatter.date(from: str)
calendarEvent.endDate = dateFormatter.date(from: str)!.addingTimeInterval(Double(session.duration) * 60.0)

但在calendarEvent配置中,您使用str,并且应该像这样使用newStartDate

let newStartDate = dateFormatter.date(from:dateFormatter.string(from:
localDate!))!

calendarEvent.location = eventLocation
calendarEvent.startDate = dateFormatter.date(from: newStartDate)
calendarEvent.endDate = dateFormatter.date(from: newStartDate)!.addingTimeInterval(Double(session.duration) * 60.0)

最新更新