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です。私の日付オブジェクトは、このNSLog出力に従って、GMTで1-1-2012、22:00:00を報告します。
"Set daytype ptd on 2012-01-01 22:00:00 +0000"
そして1月1日でも終日生成!!
すべてのタイムゾーンで、終日のイベントを正しい日に設定したことを確認するにはどうすればよいですか?簡単に3時間を追加できますが、それは世界中では機能しません。