来自datepicker的事件startdate和alarmtime

时间:2013-03-10 13:32:29

标签: ios xcode uidatepicker

我会在日历中添加一个事件。

我的代码是正确的,但我需要Datepicker的日期和时间。

如何从datepicker为以下代码设置日期和时间:

EKEventStore *es = [[EKEventStore alloc] init];
[es requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
    /* This code will run when uses has made his/her choice */
    EKEvent *myEvent = [EKEvent eventWithEventStore:es];
    myEvent.title = @"New Event";

    myEvent.startDate = [NSDate date]; // I need to set date from Datepicker

    NSTimeInterval interval = 60*+5; // I need to set time from Datepicker
    EKAlarm *alarm = [EKAlarm alarmWithRelativeOffset:interval];
    [myEvent addAlarm:alarm];
    myEvent.endDate = [[NSDate date] initWithTimeInterval:600 sinceDate:myEvent.startDate];

    [myEvent setCalendar:[es defaultCalendarForNewEvents]];
    NSError *err;
    [es saveEvent:myEvent span:EKSpanThisEvent error:&err];
}];

你可以看到我将设置日期和时间的评论。

感谢。

2 个答案:

答案 0 :(得分:0)

使用(假设datePickerUIDatePicker的出口):

NSDate *date = self.datePicker.date; 
myEvent.startDate = date;

或者在一行中:

myEvent.startDate = self.datePicker.date

对于时间间隔:

NSTimeInterval interval = <time in seconds>;

编辑:(发表评论后)

因为你只需要时间,而不是日期和时间。然后,您需要使用NSDateFormatter并格式化日期。

答案 1 :(得分:0)

我找到了日期和时间的解决方案。我正在与您分享代码:

来自datepicker的日期:

NSDate *selectedDate = self.datePicker.date;
myEvent.startDate = selectedDate;

来自datepicker的闹钟时间:

EKAlarm *alarm = [EKAlarm alarmWithAbsoluteDate:selectedDate];
[myEvent addAlarm:alarm];

就是这样。

良好的编码;)