Vergleichen NSDates ohne zeitliche Komponente
Schnell Spielplatz, ich habe mit
NSDate.date()
Aber, diese erscheint immer mit der Zeit-element angehängt. Für meine app Brauch ich zu ignorieren, die Zeit-element. Ist das möglich in Swift? Wie kann es getan werden? Selbst wenn ich könnte die Zeit einstellen element, um die gleiche Zeit bei jedem Datum, dass würde auch funktionieren.
Auch, ich bin versucht zu vergleichen, zwei Termine und im moment bin ich mit dem folgenden code:
var earlierDate:NSDate = firstDate.earlierDate(secondDate)
Ist dies der einzige Weg oder kann ich das in einer Art und Weise ignoriert, dass die Zeit-element? Zum Beispiel ich möchte nicht ein Ergebnis, wenn Sie den gleichen Tag, aber verschiedene Zeiten.
Sie wollen nicht zu "ignorieren" die Zeit, die Teil des Objekts. Es scheint, dass Sie möchten, formatieren Sie das Datum als Zeichenkette ohne die Zeit Teil. Sie können tun, dass mit
NSDateFormatter
.InformationsquelleAutor agf119105 | 2014-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie diese
Calendar
Funktion zum vergleichen von Daten in iOS 8.0+vorbei
.day
als EinheitVerwenden Sie diese Funktion wie folgt:
Dies ist eine der neuen iOS 8.0
NSCalendar
APIs. SehenNSCalendar.h
im iOS 7.1 auf iOS 8.0 API-Unterschiedeschließlich habe ich immer vermisst.
das war ein Kater von einer alten version des Swift. Aktualisiert für 2.0 - vielen Dank!
Ich denke, dass die zwei Kommentare mit Angabe der zu erwartenden Ergebnisse sind falsch.
// Compare to day: DESCENDING
sollteSAME
- und Umgekehrt.InformationsquelleAutor Ashley Mills
Es gibt einige nützliche Methoden, die in NSCalendar in iOS 8.0+:
Und auch zu vergleichen Tage:
Zu ignorieren, die Zeit-element, das Sie verwenden können, dieses:
Aber, wenn Sie unterstützt auch iOS 7, Sie können immer schreiben, eine Erweiterung
InformationsquelleAutor slamor
Schrieb ich die folgende Methode zum vergleichen von zwei Terminen durch Kreditaufnahme von Ashley Mills-Lösung. Es vergleicht zwei Datumsangaben und gibt true zurück, wenn die beiden Daten gleich sind (stripped).
Und es wird so aufgerufen:
InformationsquelleAutor Emmett Corman
Zwei Termine Vergleiche in swift.
InformationsquelleAutor abhi
Swift 4:
InformationsquelleAutor zs2020
Für die iOS7-Unterstützung
InformationsquelleAutor Loganathan
Vergleichen Sie zwei Datumsangaben mit die Beschreibung.
Wenn Sie möchten, legen Sie die Zeit, element, Ihre Termine zu einer anderen Zeit, die Sie tun können, wie folgt:
oder Sie können es auch tun, mit NSDateFormatter:
Anderen option (iOS8+) ist die Verwendung von Kalender-Methode isDate(inSameDayAsDate:):
InformationsquelleAutor Leo Dabus
Für Swift3
InformationsquelleAutor Uzma
Schrieb ich einen Swift 4-Erweiterung für den Vergleich von zwei Datumsangaben:
Verwendung:
startDate.isSameDateAs(endDate) //returns a true or false
InformationsquelleAutor Adrian
Swift:
InformationsquelleAutor Alexander Volkov
Swift 3
InformationsquelleAutor Maciek z Wrocławia
Wenn Sie
NSDate.date()
auf dem Spielplatz, sehen Sie die default Beschreibung gedruckt. VerwendenNSDateFormatter
drucken eine lokalisierte Beschreibung des date-Objekts, möglicherweise nur mit dem Termin Teil.Null heraus, dass bestimmte Teile eines Datums (für die Vergleichbarkeit), verwenden Sie
NSDateComponents
in Verbindung mitNSCalendar
.Huh?
dies hilft nicht, da ich weiß, wie das ausdrucken einer lokalisierten Beschreibung ohne Zeit-element. Ich will zu ignorieren, die Zeit-element, wie ich brauche, zu vergleichen zwei Daten, ohne die Zeit in die Quere
Verwenden Sie In diesem Fall
NSDateComponents
.InformationsquelleAutor Leo Natan
In meiner Erfahrung, die meisten Menschen die Probleme mit NSDate kommt aus der falschen Annahme, dass ein NSDate kann verwendet werden, um repräsentieren ein Datum in der 'normalen' Sinne (d.h. 24 Stunden ab Mitternacht in die lokale Zeitzone). Im normalen (Alltags - /non-Programmierung) Gebrauch, die am 1. Januar 2014 in London das gleiche Datum als 1. Januar in Peking oder New York obwohl Sie decken unterschiedliche Zeiträume in Echtzeit. Um dies auf die extreme der Zeit auf Christmas Island ist UTC+14, während die Zeit auf Midway Island ist UTC-11. Also am 1. Januar 2014 auf diesen beiden Insel sind die selben Datum, obwohl man gar nicht erst beginnen, wenn das andere abgeschlossen wurde, für eine Stunde.
Wenn das ist die Art von Datum, das Sie aufnehmen (und wenn Sie nicht die Aufzeichnung der zeitlichen Komponente, ist es wahrscheinlich auch), dann verwenden Sie nicht NSDate (die speichert nur die letzten Sekunden 2001-01-01 ein 00:00 UTC, sonst nichts) aber speichern Sie das Jahr, Monat und Tag als ganze zahlen - vielleicht, indem Sie Ihre eigenen CivilDate Klasse, wickelt diese Werte - und das stattdessen benutzen.
Nur Tauchen Sie ein in NSDate zu vergleichen Termine und dann stellen Sie sicher, dass explizit deklarieren Sie die Zeitzone "UTC" auf beiden NSDates für Vergleichszwecke.
InformationsquelleAutor Vince O'Sullivan
Swift iOS 8 und bis Wenn Sie mehr benötigen als einfach nur größer oder kleiner, das Datum Vergleiche. Zum Beispiel ist es der gleiche Tag oder den vorherigen Tag...
Beispiele für die Verwendung dieses in einem filter finden Sie hier:
https://stackoverflow.com/a/45746206/4946476
InformationsquelleAutor t1ser
Deine Frage zu beantworten:
Ja, es ist möglich
Ahh, du willst auch jetzt, WIE
Nun d1 und d2 beinhalten die Daten am Anfang Ihrer Tage.
vergleichen mit
d1!.compare(d2!)
Anzeigen, ohne Zeit-Teil, uns NSDateFormatter.
mit Google, zum Beispiel.
Sie beantwortet die Frage, wie es die Formulierung, nicht wahr?
Der Wortlaut der Frage: "Ist das möglich in Swift? Wie kann es geschehen?" mit der Bedeutung, welcher code wird benötigt? @user3477950 versucht Google Dank, aber keine brauchbaren Ergebnisse für Swift ...
InformationsquelleAutor vikingosegundo