私のような質問がたくさんありましたが、なぜうまくいかないのか分かりません。NSDateの時刻を取得して日付を無視する問題
私はCore Dataデータベースに営業時間のリストを持っています。 私は、特定の日付の間、それが開いているか閉じているかを知りたいと思います。
しかし、私は日付を確認したくありません。時間、分、秒のみ。
ここに私のオブジェクトオープニングのモデル:
- のNSNumber *日。
- NSDate * start;
- NSDate * end;
私の問題は、NSDateオブジェクトから時間を抽出した後の元の日付よりも正確に42分30秒以上です。
ここに私のコード:
NSCalendar * calendar = [NSCalendar currentCalendar];
NSCalendarUnit flags = NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
for (Opening * opening in openingsForDate) {
NSDateComponents *date1Components = [calendar components:flags fromDate:date];
NSDateComponents *date2Components = [calendar components:flags fromDate:opening.start];
NSDateComponents *date3Components = [calendar components:flags fromDate:opening.end];
NSDate *date1 = [calendar dateFromComponents:date1Components];
NSDate *date2 = [calendar dateFromComponents:date2Components];
NSDate *date3 = [calendar dateFromComponents:date3Components];
NSLog(@"%@ => %@", date, date1);
NSLog(@"%@ => %@", opening.start, date2);
NSLog(@"%@ => %@", opening.end, date3);
}
ここで出力:
2017-01-25 22:10:41 +0000 => 0001-01-01 22:53:11 +0000
2017-01-25 11:00:00 +0000 => 0001-01-01 11:42:30 +0000
2017-01-25 22:00:00 +0000 => 0001-01-01 22:42:30 +0000
任意のアイデア? ありがとうございます。
編集:解決策here!
NSDateの代わりにNSNumberを保存する必要がありますか。だから時間、分、秒をNSTimeIntervalに変換し、これを私のコアデータデータベースに保存しますか?しかし、なぜ私は42分30秒以上持っているのか分かりません^^ – Lapinou