2014-05-10 67 views
1

我在格式化日期时遇到问题,因此我可以将它与EventKit一起用于将其添加到日历中。该日期是从JSON从bandsintown API来和格式化这样的:无法格式化NSDate

2014-05-10T19:00:00 

我的代码添加到日历是这样的。问题是newDate为空。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 
    NSString *formattedDateString = [dateFormatter stringFromDate:date]; 
    NSDate *newDate = [dateFormatter dateFromString:formattedDateString]; 

    NSLog(@"%@", newDate); 

    EKEventStore *store = [[EKEventStore alloc] init]; 
    [store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) { 
     if (!granted) 
     { 
      return; 
     } 
     EKEvent *event = [EKEvent eventWithEventStore:store]; 
     event.title = titleString; 
     event.location = venueString; 
     event.startDate = newDate; 
     event.endDate = [event.startDate dateByAddingTimeInterval:60*60]; //set 1 hour meeting 
     [event setCalendar:[store defaultCalendarForNewEvents]]; 
     NSError *err = nil; 
     [store saveEvent:event span:EKSpanThisEvent commit:YES error:&err]; 
    }]; 

回答

2

你从JSON日期为字符串。因此,它是没有意义的 呼叫stringFromDate:第一次(应该有一个“不兼容的指针警告”)。 只需要dateFromString:

NSString *date = @"2014-05-10T19:00:00"; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 
NSDate *newDate = [dateFormatter dateFromString:date];