日历事件添加错误的时间问题

时间:2016-05-18 10:56:38

标签: ios swift ekevent ekeventstore ekeventkit

我正在处理日历应用程序。

我正在尝试在默认的iPhone日历中添加添加新事件。在这种情况下成功添加了事件,但启动时间始终设置为默认iPhone日历中的5.30 PM如何解决此问题

附在下面的代码中,

 let event = EKEvent(eventStore: store)
 event.title = "calendar Name"
 event.startDate = startDate //2016-05-19 00:00:00 +0000
 event.endDate = endDate // 2016-05-19 23:59:59 +0000
 event.calendar = store.defaultCalendarForNewEvents
 do {

    try store.saveEvent(event, span: .ThisEvent, commit: true)

  } catch {

  }

1 个答案:

答案 0 :(得分:1)

似乎您的设备时区设置为IST。

因此,设备日历中显示的5.30 AM是预期的行为。因为在保存开始时间时;你把它保存在GMT中;注意时间里的+0000。

如果您想将活动保存为全天活动, 只需设置

class Opt {
    constructor(public id, public text) {

    }

    toPlainObj(): Object {
        return {
            id: this.id,
            text: this.text
        }
    }
}

let opts = [
    new Opt(0, 'foo'),
    new Opt(1, 'bar')
];

console.clear()

console.log('both should be false')
$.map(opts, opt => {
    console.log($.isPlainObject(opt))
})

console.log('both should be true')
$.map(opts, opt => {
    console.log($.isPlainObject(opt.toPlainObj()))
})