2017-04-10 53 views
0

我加入與NSDate的值的事件獲取錯誤的日期,而從我的應用程序在iPhone應用程序提醒添加事件

「2017年4月25日15:00:00 +0000」

根據我的時區,它是2017-04-25 08:40 PM。

我從函數獲取NSDate值。

NSString *strDateTime = @"Tuesday, 25 Apr 2017 08:30 PM"; 
NSDateFormatter *formatterLocal = [[NSDateFormatter alloc] init]; 
[formatterLocal setTimeZone:[NSTimeZone systemTimeZone]]; 
[formatterLocal setDateFormat:@"EEEE, dd MMM yyyy hh:mm a"]; 
NSDate *dateAdd = [formatterLocal dateFromString:strDateTime]; 

雖然我檢查提醒應用程序,它顯示的日期是25/04/17,3:00 PM。雖然應該是25/04/17,晚上8:00。

任何人都可以請幫我從這!

我已經檢查Get wrong time when adding an event to default calendar in iPhone

回答

0

我正好趕上我的錯誤。

我在「dueDateComponents」中設置了錯誤的時區。

以下是我的代碼。

EKReminder *reminder = [EKReminder reminderWithEventStore:self.eventStore]; 
reminder.dueDateComponents = [self dateComponentsForDefaultDueDate]; 

- (NSDateComponents *)dateComponentsForDefaultDueDate { 
    /* 
    Changing date components 
    */ 
    NSCalendar *cal = [NSCalendar currentCalendar]; 
    //[cal setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 
    NSDateComponents *components = [cal components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear |NSCalendarUnitHour | NSCalendarUnitMinute fromDate:[NSDate dateWithTimeIntervalSince1970:[_dictData[@"start"] longLongValue]]]; 

    components.hour = [components hour]; 
    components.minute = [components minute]; 

    return components; 
} 

我只是評論

// [CAL setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@ 「GMT」]];

愚蠢的錯誤:p

相關問題