我正在尝试在预订活动后将活动添加到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)