Holen Sie NSDate heute, gestern, diese Woche, letzte Woche, diesen Monat, letzten Monat ... Variablen
Ich versuche zu tun ist, um NSDate heute, gestern, diese Woche, Letzte Woche, dieser Monat, letzter Monat-Variablen bereit, die für den Vergleich für Header Hinzugefügt werden, die auf UITableView ist titleForHeaderInSection
Was ich will, ist getan manuell in den code unten Datum 2009-12-11
NSDate *today = [NSDate dateWithString:@"2009-12-11 00:00:00 +0000"];
NSDate *yesterday = [NSDate dateWithString:@"2009-12-10 00:00:00 +0000"];
NSDate *thisWeek = [NSDate dateWithString:@"2009-12-06 00:00:00 +0000"];
NSDate *lastWeek = [NSDate dateWithString:@"2009-11-30 00:00:00 +0000"];
NSDate *thisMonth = [NSDate dateWithString:@"2009-12-01 00:00:00 +0000"];
NSDate *lastMonth = [NSDate dateWithString:@"2009-11-01 00:00:00 +0000"];
InformationsquelleAutor der Frage hasnat | 2009-12-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Angepasst an die Datum und Uhrzeit Programming Guide:
Wenn Sie wollen die richtige genaue Anzahl der Tage je nach Monat, sollten Sie eine
NSCalendar
.InformationsquelleAutor der Antwort Ben S
Vielleicht eine bessere Möglichkeit, dies zu schreiben, aber hier ist was ich kam auf Ben ' s NSCalendar Vorschlag und arbeiten von dort aus zu NSDateComponents
InformationsquelleAutor der Antwort hasnat
NSDateComponents ist schön, um sich heute:
Dies schafft ein NSDate mit nur Jahr, Monat und Datum:
Bekommen, gestern, etc. berechnen Sie es mit NSDateComponents:
InformationsquelleAutor der Antwort Christian Beer
InformationsquelleAutor der Antwort Dustin
Swift 2
Swift 3
In Swift 3bitte beachten Sie, dass die Datum-Komponenten sind optional.
InformationsquelleAutor der Antwort gokhanakkurt
Den anderen Antworten nur funktionierte nicht für mich (vielleicht wegen meiner Zeitzone). Dies ist, wie ich es mache:
InformationsquelleAutor der Antwort Lucas
Wenn Sie iOS 10+ oder MacOS 10.12+ verwenden, können Sie diese beiden
Calendar
Methoden, um dies richtig tun.func date(byAdding component: Calendar.Component, value: Int, to date: Date, wrappingComponents: Bool = default) -> Date?
(docs)func dateInterval(of component: Calendar.Component, for date: Date) -> DateInterval?
(docs)Hier ist ein Beispiel, wie diese Methoden in Swift 3, zusammen mit den Spielplätzen Ausgabe in meiner Zeitzone.
Bonus nutzen: Sie können die
DateInterval
s um zu testen, ob ein Datum fällt in diesen Bereich. Fortsetzung von oben:InformationsquelleAutor der Antwort yood
InformationsquelleAutor der Antwort hayden
Ich mag die THCalendarInfo Objekts in diesem Projekt:
http://github.com/jaredholdcroft/kcalendar
Kann ich nicht ganz das original finden. Mit diesem Objekt können Sie bewegen, um zu einem früheren Tag, Anfang der Woche, der start in einen Monat, bekommen Sie das Tag einer Woche, Tag eines Monats,... etc. etc.
InformationsquelleAutor der Antwort Kendall Helmstetter Gelner
InformationsquelleAutor der Antwort Tischel
Dies ist für die Prüfung wird das Datum in diesem Monat oder nicht
Und das zweite nur Typ ändern von calendarUnit für schwache wie diese
Ich hoffe, dies ist hilfreich, um jemanden Danke.
InformationsquelleAutor der Antwort ilesh
Ich eine ähnliche Frage beantwortet schon und hier ist, warum meine Antwort ist besser:
InformationsquelleAutor der Antwort ChrisJF