Icalendar 在iOS中显示日历事件详细信息
我使用下面的代码获取日历事件并记录其详细信息。当我尝试记录currenttime、startDate和endDate时,它显示的时间大约为5小时前。我不明白这背后的原因是什么 我把活动时间定在7月30日晚上8点到9点 我的代码:Icalendar 在iOS中显示日历事件详细信息,icalendar,ios7.1,ekevent,ekeventkit,ekeventstore,Icalendar,Ios7.1,Ekevent,Ekeventkit,Ekeventstore,我使用下面的代码获取日历事件并记录其详细信息。当我尝试记录currenttime、startDate和endDate时,它显示的时间大约为5小时前。我不明白这背后的原因是什么 我把活动时间定在7月30日晚上8点到9点 我的代码: - (NSMutableArray *)fetchEvents { long hour; long minute; NSCalendar *cal=[NSCalendar autoupdatingCurrentCalendar];
- (NSMutableArray *)fetchEvents
{
long hour;
long minute;
NSCalendar *cal=[NSCalendar autoupdatingCurrentCalendar];
NSTimeZone *tz=[NSTimeZone timeZoneWithName:@"Asia/Kolkata"];
[cal setTimeZone:tz];
NSDate *currentTime = [NSDate date];
NSLog(@"currentTime %@", currentTime);
NSDateComponents *comp=[cal components:NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:now];
hour = [comp hour];
minute =[comp minute];
NSLog(@"hour %ld", hour);
NSLog(@"minute %ld", minute);
//Create the end date components
NSDateComponents *tomorrowDateComponents = [[NSDateComponents alloc] init];
tomorrowDateComponents.day = 2;
NSDate *endDate = [[NSCalendar currentCalendar] dateByAddingComponents:tomorrowDateComponents
toDate:startDate
options:0];
// We will only search the default calendar for our events
NSArray *calendarArray = [NSArray arrayWithObject:self.defaultCalendar];
// Create the predicate
NSPredicate *predicate = [self.eventStore predicateForEventsWithStartDate:startDate
endDate:endDate
calendars:calendarArray];
// Fetch all events that match the predicate
NSMutableArray *events = [NSMutableArray arrayWithArray:[self.eventStore eventsMatchingPredicate:predicate]];
NSLog(@"events %@", events);
[events valueForKey:@"title"];
[events valueForKey:@"location"];
[events valueForKey:@"timeZone"];
[events valueForKey:@"startDate"];
[events valueForKey:@"endDate"];
NSLog(@"title %@", [events valueForKey:@"title"]);
NSLog(@"location %@", [events valueForKey:@"location"]);
NSLog(@"timeZone %@", [events valueForKey:@"timeZone"]);
NSLog(@"startDate %@", [events valueForKey:@"startDate"]);
NSLog(@"endDate %@", [events valueForKey:@"endDate"]);
return events;
}
但当我运行上述代码时,我得到了以下输出
2014-07-29 14:13:57.979 iCalEvents[806:60b]当前时间2014-07-29 08:43:57+0000
2014-07-29 14:13:57.980 i水平[806:60b]小时14
2014-07-29 14:13:57.980 i级别[806:60b]第13分钟
2014-07-29 14:13:57.981 iCalEvents[806:60b]开始日期2014-07-29 08:43:57+0000
2014-07-29 14:13:57.990 iCalvents[806:60b]事件(
“EKEvent\n{\n\t EKEvent\n{\t title=\t\tMyEvent;\n\t location=\t(null);\n\t calendar=\tkCalendar{title=calendar;type=Local;allowsModify=YES;color=\n\t alarms=\t\t\t(null);\n\t URL=\t\t\t(null);\n\t lastModified=2014-07-29 08:38:32+0000;\n\t时区=\t塔西亚/加尔各答GMT(格林威治标准时间+5:30)偏移量19800\n}”;\n\t location=\t(null);\n\tstartDate=\t2014-07-30 14:30:00+0000;\n\tendDate=\t\t2014-07-30 15:30:00+0000;\n\t全天=\t\t\t浮动=\t0;\n\t重复性=\t(null);\n\t与会者=\t(null)\n
)
2014-07-29 14:13:57.990 iCalvents[806:60b]标题(
MyEvent
)
2014-07-29 14:13:57.991 iCalvents[806:60b]位置(
""
)
2014-07-29 14:13:57.991 iCalEvents[806:60b]时区(
“亚洲/加尔各答(格林尼治标准时间+5:30)偏移量19800”
)
2014-07-29 14:13:57.992 iCalEvents[806:60b]开始日期(
“2014-07-30 14:30:00+0000”
)
2014-07-29 14:13:57.992 iCalEvents[806:60b]结束日期(
“2014-07-30 15:30:00+0000”
)以GMT+5:30显示时区时间。加上5小时30分钟的电流或给定时间