文字列を NSDate オブジェクトに変換しようとしています。次のコードを使用して変換を行っています。
NSDateFormatter * dateFormat = [[NSDateFormatter alloc] init];
NSTimeZone *tz = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[dateFormat setDateFormat:@"M/d/yyyy HH:mm:ss a"];
[dateFormat setTimeZone:tz];
NSDate * dtEventStart = [dateFormat dateFromString:@"1/7/2013 6:30:00 AM"];
NSDate * dtEventEnd = [dateFormat dateFromString:@"1/7/2013 8:45:00 PM"];
NSLog(@"dtEventStart: %@", dtEventStart);
NSLog(@"dtEventEnd: %@", dtEventEnd);
ただし、出力は次のようになります。
dtEventStart: 2013-01-07 00:30:00 +0000
dtEventEnd: 2013-01-07 12:45:00 +0000
出力された時刻と日付は、変換に使用された文字列と同じではありません。timeZone にも EST を使用してみましたが、次のように異なる誤った結果が生成されます。
dtEventStart: 2013-01-07 05:30:00 +0000
dtEventEnd: 2013-01-07 17:45:00 +0000
私は何かが欠けていることを知っていますが、何がわかりません。どんな助けでも大歓迎です。
ありがとうございました
アップデート:
ここは
EKEventStore *eventStore = [[EKEventStore alloc] init];
EKEvent * eventForCalendar = [EKEvent eventWithEventStore:eventStore];
eventForCalendar.title = event.title;
NSDateFormatter * dateFormat = [[NSDateFormatter alloc] init];
NSTimeZone *tz = [NSTimeZone timeZoneWithAbbreviation:@"EST"];
[dateFormat setDateFormat:@"M/d/yyyy HH:mm:ss a"];
[dateFormat setTimeZone:tz];
NSDate * dtEventStart = [dateFormat dateFromString:@"1/7/2013 6:30:00 AM"];
NSDate * dtEventEnd = [dateFormat dateFromString:@"1/7/2013 8:45:00 PM"];
NSLog(@"dtEventStart: %@", dtEventStart);
NSLog(@"dtEventEnd: %@", dtEventEnd);
eventForCalendar.startDate = dtEventStart;
eventForCalendar.endDate = dtEventEnd;
[eventForCalendar setCalendar:[eventStore defaultCalendarForNewEvents]];
NSError *err;
[eventStore saveEvent:eventForCalendar span:EKSpanThisEvent error:&err];