時刻を午前 12:00:01 に設定して日付を作成しようとしています。秒と分は正しく値に設定されていますが、時間の値は常に、私が設定した値 + 4 になります。なぜ 4 なのですか? その価値の何がそんなに特別なのですか?分と秒の値は正しく設定されていますが、時間の値は置き換えではなく単純に追加されているようです。
ここにコードがあります、
NSDate *now = [NSDate date];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];
[components setHour:0];
[components setMinute:0];
[components setSecond:1];
NSDate *compareTime = [calendar dateFromComponents:components];
NSLog(@"compareTime: %@", compareTime);
NSLog(@"currentTime: %@", now);
出力は次のとおりです。
比較時間: 2013-05-17 04:00:01 +0000
currentTime: 2013-05-17 15:00:37 +0000