Как добавить событие в календарь по умолчанию - PullRequest
0 голосов
/ 16 ноября 2011

Привет всем, мне нужно сохранить событие для хранения в календаре по умолчанию. Так что мне нужно преобразовать заданную строку даты в Nsdate. код ниже ...

моя строка даты // startdate - format --- November 19 2011 9:30 PM в этом формате ... я написал так

NSDateFormatter *dateformatter=[[NSDateFormatter alloc]init]; 
[dateformatter setDateFormat:@"MMMM dd yyyy H:m a"]; 

NSLog(@"start date is %@",startdate); 
NSDate *dates=[[NSDate alloc]init]; 
dates=[dateformatter dateFromString:startdate]; 

NSLog(@"date is %@",dates); 

и я получаю вывод, как этот, мне нужно добавить его для события. Я не получаю точное время ... дата 2011-11-19 07:00:00 +0000

Ответы [ 2 ]

2 голосов
/ 16 ноября 2011

Попробуйте (это прекрасно работает для меня):

NSDateFormatter *dateformatter=[[NSDateFormatter alloc]init]; 
[dateformatter setDateFormat:@"MMMM dd yyyy h:m a"]; 

NSLog(@"start date is %@",startdate); 
NSDate *dates = [dateformatter dateFromString:startdate]; 

NSLog(@"date is %@",dates);

Если вы хотите установить определенный часовой пояс, просто используйте метод setTimeZone:

[dateformatter setTimeZone:[NSTimeZone timeZoneWithName:@"Europe/Moscow"]];
0 голосов
/ 21 ноября 2011

Наконец я нашел решение для ошибки. Код ниже

- (IBAction) notifyButtonpressed: (идентификатор) отправителя { NSLog (@ "нажата кнопка уведомления");

EKEventStore *eventStore = [[EKEventStore alloc] init];

EKEvent *event  = [EKEvent eventWithEventStore:eventStore];
event.title=location;


//startdate--format---November 19 2011 9:30 PM

NSDateFormatter *dateformatter=[[NSDateFormatter alloc]init]; 

NSDate *date=[NSDate date];
[dateformatter setDateFormat:@"Z"];

NSString *timezones=[dateformatter stringFromDate:date];

NSLog(@"time zone is %@",timezones);
NSMutableString *new_start=[[NSMutableString alloc]init];



[new_start appendString:[NSString stringWithFormat:@"%@ %@",startdate,timezones]];

NSLog(@"after0000-----append is %@",new_start);


[dateformatter setDateFormat:@"MMMM dd yyyy hh:mm a Z"]; 

NSLog(@"start date is %@",startdate);
NSDate *startdates = [dateformatter dateFromString:new_start]; 

NSMutableString *new_start1=[[NSMutableString alloc]init];


[new_start1 appendString:[NSString stringWithFormat:@"%@ %@",enddate,timezones]];


NSDate *enddates=[dateformatter dateFromString:new_start1]; 
NSLog(@"-------date is %@ ,%@------",startdates,new_start1);


event.title=Title;



NSLog(@"start date is %@--",startdates);
event.startDate =[startdates initWithTimeInterval:600 sinceDate:startdates];

event.endDate=enddates; 





[event setCalendar:[eventStore defaultCalendarForNewEvents]];

NSLog(@"event start date is %@ and enddate is %@",event.startDate,event.endDate);
NSError *err;

[eventStore saveEvent:event span:EKSpanThisEvent error:&err]; 

if(!err)
{

    UIAlertView *alertview=[[UIAlertView alloc]initWithTitle:Title message:@"Event Added successfully " delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [alertview show];
    [alertview release];

}


NSLog(@"error is %@",err);

}

...