Wie Stunden zu einem NSDate hinzufügen?
-
11-09-2019 - |
Frage
Ich habe ein Datum auf dem doppelten Wert umgewandelt und gespeichert in der Datenbank. Jetzt will ich vergleichen, wenn currentDate > myDataBaseDate + 8
Stunden das heißt, ich möchte 8 Stunden erhalten haben myDataBaseDate. Ich bin Umwandlung Datum in doppelte Werte. Also wie bekomme ich 8 Stunden später aus meiner Datenbank gespeichert Datum. Wie kann ich vergleichen
if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
Lösung
Ich bin nicht ganz sicher, was Sie versuchen zu tun, aber Sie können ein NSDate Objekt erstellen, indem Sie das Hinzufügen Zeit in Sekunden zu einem anderen NSDate mit:
- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds
// zB. 8 Stunden aktuelle Zeit hinzuzufügen:
NSDate *mydate = [NSDate date];
NSTimeInterval secondsInEightHours = 8 * 60 * 60;
NSDate *dateEightHoursAhead = [mydate dateByAddingTimeInterval:secondsInEightHours];
Andere Tipps
Seit iOS 8 gibt es die bequemere dateByAddingUnit
:
//add 8 hours
let calendar = NSCalendar.autoupdatingCurrentCalendar()
newDate = calendar.dateByAddingUnit(.CalendarUnitHour, value: 8, toDate: originalDate, options: nil)
Sie können einfach verwenden:
NSDate *incrementedDate = [NSDate dateWithTimeInterval:numberOfSeconds sinceDate:[NSDate date]];
Sie können einfach hinzufügen 8 * 3600 zu Ihrem Datenbank-Wert (unter der Annahme, dass die konvertierten doppelte Wert repräsentiert Sekunden).
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];
Swift 3.X Einfache Bedienung
let calendar = NSCalendar.autoupdatingCurrent
let newDate = calendar.date(byAdding: .hour, value: 8, to: Date())