简体   繁体   English

将活动添加到日历中的特定日期

[英]Add event to specific date in calendar

I want to add event to calendar in iOS. 我想将事件添加到iOS中的日历中。 I have date of event in string. 我有日期的字符串。

This code is not adding events if event.startDate = eventToCalDate and event.endDate = eventToCalDate. 如果event.startDate = eventToCalDate和event.endDate = eventToCalDate,则此代码不会添加事件。 But it works well if event.startDate = NSDate() and event.endDate = NSDate() 但是,如果event.startDate = NSDate()和event.endDate = NSDate()则效果很好

eventStore.requestAccessToEntityType(EKEntityTypeEvent, completion: {
        granted, error in
        if (granted) && (error == nil) {
            println("granted \(granted)")
            println("error  \(error)")

            self.eventTechDate = "2015-03-06 18:58:13 +0000";
            var tempDateFormatter = NSDateFormatter()
            tempDateFormatter.dateFormat = "YYYY-MM-DD HH:mm:ss Z"
            var eventToCalDate = tempDateFormatter.dateFromString(self.eventTechDate)

            var event:EKEvent = EKEvent(eventStore: eventStore)
            event.title = self.eventTitle
            event.startDate = eventToCalDate
            event.endDate = eventToCalDate
            event.notes = "added from myApp"
            event.calendar = eventStore.defaultCalendarForNewEvents
            eventStore.saveEvent(event, span: EKSpanThisEvent, error: nil)
            println("event added")
        }
    })

what is wrong here? 这是怎么了 Also i want to know how can i add event to all date not only to specific time. 我也想知道如何将事件添加到所有日期,而不仅是特定时间。

You have to set your event.startDate using 您必须使用以下方法设置event.startDate

[[NSDate date] dateByAddingTimeInterval:date_interval];

eg: 例如:

// your event start date components
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:9];
[comps setMonth:3];
[comps setYear:2015];
[comps setHour:9];
[comps setMinute:0];
[comps setSecond:0];
NSDate * timestamp = [[NSCalendar currentCalendar] dateFromComponents:comps];
NSTimeInterval date_interval = [timestamp timeIntervalSinceDate:[NSDate date]];

EKEvent *event = [EKEvent eventWithEventStore:store];
event.title = @"EVENT TITLE";
event.startDate = [[NSDate date] dateByAddingTimeInterval:date_interval];
event.endDate = [event.startDate dateByAddingTimeInterval:1*60*60];  //set 1 hour meeting
[event setCalendar:[store defaultCalendarForNewEvents]];
NSError *err = nil;
[store saveEvent:event span:EKSpanThisEvent commit:YES error:&err];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM