51

日付をdouble値に変換して、データベースに保存しました。ここで、時間を比較したいと思いますcurrentDate > myDataBaseDate + 8。つまり、myDataBaseDateに8時間を追加したいと思います。日付をdouble値に変換しています。では、データベースの保存日から8時間後の時間を取得するにはどうすればよいですか。比較するにはどうすればよいですか

if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
4

6 に答える 6

149

あなたが何をしようとしているのか完全にはわかりませんが、次を使用して別の NSDate に秒単位の時間を追加することで NSDate オブジェクトを作成できます。

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

// 例。現在の時刻に 8 時間を追加するには:

NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 8 * 60 * 60;
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];
于 2009-10-31T13:51:26.460 に答える
19

iOS 8以降、より便利なものがありますdateByAddingUnit:

//add 8 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil)
于 2015-05-10T13:38:25.690 に答える
2

以下を簡単に使用できます。

NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]];
于 2015-01-15T17:04:19.513 に答える
0

NSDate *startdate = datePicker.date;

    NSTimeInterval secondsInOneHours = 1 * 60 * 60;

    NSDate *dateOneHoursAhead = [startdate dateByAddingTimeInterval:secondsInOneHours];

    [dateformate setDateFormat:@"d-MMM-yy HH:mm:ss"];

    strDate = [dateformate stringFromDate:dateOneHoursAhead];
于 2014-10-17T15:52:17.690 に答える
0

データベース値に 8 * 3600 を追加するだけです (変換された double 値が秒を表すと仮定します)。

于 2009-10-31T13:48:51.117 に答える