web-dev-qa-db-ja.com

NSDateに時間を追加する方法は?

日付を二重値に変換してデータベースに保存しました。ここで、currentDate > myDataBaseDate + 8時間、つまり、myDataBaseDateに8時間を追加したい。日付を二重値に変換しています。それでは、データベースの保存日から8時間後に取得する方法を教えてください。比較する方法

if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
49
Rahul Vyas

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

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

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

NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 8 * 60 * 60;
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];
147
Tom Jefferys

IOS 8以降、より便利なdateByAddingUnitがあります:

//add 8 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil)
17
Ben Packard

単に使用できます:

NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]];
2
TechSeeko

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];
0

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

0
Pascal