2014-05-10 18 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];