web-dev-qa-db-fra.com

Comment ajouter des heures à un NSDate?

J'ai une date convertie en double valeur et enregistrée dans une base de données. Maintenant, je veux comparer si currentDate > myDataBaseDate + 8 heures c’est-à-dire si je veux avoir 8 heures ajoutées à myDataBaseDate. Je convertis la date en valeurs doubles. Alors, comment puis-je obtenir 8 heures plus tard à partir de la date de sauvegarde de ma base de données. Comment comparer 

if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
49
Rahul Vyas

Je ne suis pas tout à fait sûr de ce que vous essayez de faire, mais vous pouvez créer un objet NSDate en ajoutant du temps en secondes à un autre NSDate en utilisant:

- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds

// par exemple. ajouter 8 heures à l'heure actuelle:

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

Depuis iOS 8, il existe une dateByAddingUnit plus pratique:

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

Vous pouvez simplement utiliser:

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
Venu Gopal Tewari

Vous pouvez simplement ajouter 8 * 3600 à la valeur de votre base de données (en supposant que votre double valeur convertie représente des secondes).

0
Pascal