UINotifications を使用するアプリを作成しています。コードは通知用に機能していますが、正しいタイム ゾーンを取得できません。
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
// Get the current date
NSDate *pickerDate = [self.datePicker date];
// Break the date up into components
NSDateComponents *dateComponents = [calendar components:( NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSTimeZoneCalendarUnit)
fromDate:pickerDate];
NSDateComponents *timeComponents = [calendar components:( NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit )
fromDate:pickerDate];
上記のNSDateComponentsで正しく取得していると確信しています
// Set up the fire time
NSDateComponents *dateComps = [[NSDateComponents alloc] init];
[dateComps setDay:[dateComponents day]];
[dateComps setMonth:[dateComponents month]];
[dateComps setYear:[dateComponents year]];
[dateComps setHour:[timeComponents hour]];
ここで、現在の電話の場所にタイムゾーンを設定する必要があると確信しています
[dateComps setTimeZone:[dateComponents timeZone]];
[dateComps setMinute:[timeComponents minute]];
[dateComps setSecond:[timeComponents second]];
NSDate *itemDate = [calendar dateFromComponents:dateComps];
NSLog(@"%@",[NSString stringWithFormat:@"%@",itemDate]);
itemDate をログ ファイルにダンプしようとしましたが、取得した内容は GMT のように見えます
2013-11-07 00:24:14.559 IMOB[796:60b] 2013-11-07 08:23:56 +0000
ログ ファイル行の先頭にあるタイムスタンプでわかるように、正確には午前 12:24 ですが、出力は 08:23 と表示されます。
なにが問題ですか