我对 CalCalendar 中的全天活动有 TimeZone 问题:
- (BOOL)setDayType:(NSString *)type
forDay:(NSDate *)date;
{
NSError *err = nil;
CalEvent *e = [CalEvent event];
[e setTitle:type];
[e setIsAllDay:YES];
[e setStartDate:date];
[e setEndDate:[date dateByAddingTimeInterval:1]];
[e setCalendar:[self calendar]];
if ( ![[CalCalendarStore defaultCalendarStore] saveEvent:e span:CalSpanThisEvent error:&err] )
{
...
假设我将日期设置为 2012 年 1 月 2 日,时间为 00:00:00。我在 GMT+2,所以时区 +0200。我的日期对象报告 1-1-2012,22:00:00,在 GMT,根据这个 NSLog 输出:
"Set daytype ptd on 2012-01-01 22:00:00 +0000"
甚至在 1 月 1 日也会生成全天!!
如何确保我为所有时区在正确的一天设置全天事件?我可以轻松增加三个小时,但这在全球范围内都行不通!