Wie füge ich 1 Tag auf ein NSDate?
Grundsätzlich, wie der Titel sagt. Ich Frage mich, wie ich hinzufügen könnte 1 Tag bis zu NSDate
.
Also wenn es:
21st February 2011
Es werden würde:
22nd February 2011
Bzw. wenn es:
31st December 2011
Es werden würde:
1st January 2012.
- Beachten Sie, dass ein NSDate nicht repräsentieren ein Datum, stellt es einen Punkt in der Zeit. So enthält es eine Uhrzeit sowie ein Datum.
- Vereinbart - Sie sollten mit Zack deutschen Antwort unten. Siehe Apple ' s Datum und Uhrzeit Programming Guide.
- Blättern Sie nach unten für neuere (und kürzer) Lösungen!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese sollten selbsterklärend sein.
dateByAddingComponents
AufrufNSCalendarOptions(rawValue: 0)
Seit iOS 8 können Sie
NSCalendar.dateByAddingUnit
Beispiel in Swift 1.x:
Swift 2.0:
Swift 3.0:
date.add(.days, 1)
? *geht hin und baut eine ErweiterungDate().adding(.day, 1) // "Jun 6, 2019 at 5:35 PM"
Objective C
Aktualisiert für Swift 5
iOS 8+, OS x 10.9+, Objective-C
Einen funktionierenden Swift 3 & 4 Implementierung basierend auf highmaintenance ist Antwort und vikingosegundo ist Kommentar. Dieses Datum Erweiterung hat auch zusätzliche Optionen zum ändern Jahr, Monat und Uhrzeit:
Nutzung für das hinzufügen von nur einem Tag, wie gebeten, durch die OP wäre dann:
let foo = Date().add([.calendar: 1, .yearForWeekOfYear: 3]
ich hinzufüge, die alternative Lösung auf meine Antwort obwohl. Vielen Dank für Ihren Vorschlag, @vikingosegundo!Swift 4.0 (gleiche wie Swift 3.0 in diese wunderbare Antwort nur deutlich machen für rookies wie mich)
Verwenden Sie die unter-Funktion und verwenden Sie Tage paramater um das Datum zu erhalten daysAhead/daysBehind übergeben Sie parameter als positiv für die Zukunft Datum oder negativ für frühere Termine:
Swift
Swift 3.0 sehr einfache Umsetzung wäre:
Es ist Arbeit!
Können Sie NSDate Methode
- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds
woseconds
wäre60 * 60 * 24 = 86400
Swift 4.0
Nutzung
Hinweis: Wenn Sie nicht wissen, warum der code-Zeilen enden mit einem Ausrufezeichen nach "Swift-Optionen" auf Google.
Swift 2.1.1 und xcode 7.1 OSX 10.10.5 ,Sie können eine beliebige Anzahl von Tagen vorwärts und rückwärts mit Hilfe der Funktion
Funktionsaufruf für das Inkrementieren aktuellen Zeitpunkt von 9 Tagen
Funktionsaufruf für Dekrement aktuelle Datum, bis zu 80 Tagen
Hier ist eine Allgemeine Methode, die ermöglicht Ihnen das hinzufügen/subtrahieren jede Art von Einheit(Jahr/Monat/Tag/Stunde/Sekunde etc) in dem angegeben Datum.
Mit Swift 2.2
In swift können Sie machen Sie-Erweiterung add-Methode in NSDate
können Sie diese verwenden, als
Ok - ich dachte, dies würde für mich arbeiten. Jedoch, wenn Sie es verwenden, um hinzufügen einen Tag auf den 31. März 2013, es werde ein Datum, das hat nur 23 Stunden Hinzugefügt. Es kann also eigentlich haben die 24, aber mit in die Berechnungen nur 23:00 Uhr Hinzugefügt.
Ähnlich, wenn Sie blast vorwärts bis zum 28 Okt 2013, fügt der code 25 Stunden, daraus resultierende in einem Datums-Zeit von 2013-10-28 01:00:00.
Damit Sie einen Tag gab ich die Sache auf die Spitze, indem die:
Kompliziert, vor allem wegen der Sommerzeit.
60*60*24 + 1
wegen der Schaltsekunden. Termine müssen Abdeckung all dieser, und das ist der Grund, warum das Datum Verarbeitung von Kakao ist wirklich toll!für swift 2.2:
Hoffe, das jemand hilft!
Swift 4, wenn alles, was Sie wirklich brauchen, ist ein 24-Stunden-Schicht (60*60*24 Sekunden) und nicht "1 Tag"
Zukunft:
let dayAhead = Date(timeIntervalSinceNow: TimeInterval(86400.0))
Vergangenheit:
let dayAgo = Date(timeIntervalSinceNow: TimeInterval(-86400.0))
Ich hatte das gleiche problem, verwenden Sie eine Erweiterung für NSDate:
Swift 2.0
Verwenden Sie folgenden code:
Als
ist jetzt veraltet.