Ich habe gerade mit dem Spielplatz angefangen. Ich versuche eine einfache App zu erstellen.
Ich habe ein Datumsobjekt wie folgt erstellt:
var date = NSDate()
Wie kann ich die aktuelle Stunde erhalten? In anderen Sprachen kann ich so etwas machen:
var hour = date.hour
Aber ich kann solche Eigenschaften / Methoden nicht finden. Ich habe eine Methode gefunden dateWithCalendarFormat
. Soll ich das benutzen? Wenn das so ist, wie?
let components = calendar.components(.NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
, der vertikale Schrägstrich kann hier nicht mehr verwendet werden.let components = calendar.components(NSCalendarUnit.Year.union(NSCalendarUnit.Minute), fromDate: date)
entfernte das zusätzliche '.' vor NSCalendarUnitlet components = calendar.components([ .Hour, .Minute, .Second], fromDate: date)
Getestet mit Swift 4
Abrufen des aktuellen Datums und der aktuellen Uhrzeit
So einfach können Sie das aktuelle Datum und die Uhrzeit abrufen:
Es handelt sich jedoch
Date
um eine 64-Bit-Gleitkommazahl, die die Anzahl der Sekunden seit dem Referenzdatum vom 1. Januar 2001 um 00:00:00 UTC misst . Ich kann diese Nummer für die aktuelle Datums- / Uhrzeitangabe mit verwendenZum Zeitpunkt dieses Schreibens kehrte es zurück
497626515.185066
, wahrscheinlich nicht genau das, wonach Sie suchen. Weiter lesen.Erstellen eines anderen Datums und einer anderen Uhrzeit
Methode 1
Wenn Sie die Anzahl der Sekunden vor oder nach dem Referenzdatum kennen, können Sie diese verwenden.
Methode 2
Natürlich wäre es einfacher, Dinge wie Jahre, Monate, Tage und Stunden (anstatt relative Sekunden) zu verwenden, um eine zu erstellen
Date
. Hierzu können SieDateComponents
die Komponenten angeben und anschließendCalendar
das Datum erstellen. DasCalendar
gibt denDate
Kontext. Wie würde es sonst wissen, in welcher Zeitzone oder in welchem Kalender es ausgedrückt werden soll?Weitere Zeitzonenabkürzungen finden Sie hier . Wenn Sie dieses Feld leer lassen, wird standardmäßig die Zeitzone des Benutzers verwendet.
Methode 3
Der prägnanteste Weg (aber nicht unbedingt der beste) könnte sein
DateFormatter
.Die Unicode - technischen Standards zeigen andere Formate , dass
DateFormatter
Stützen.Datum und Uhrzeit anzeigen
Methode 1
Wenn Sie nur bestimmte Komponenten des Datums oder der Uhrzeit anzeigen möchten, können Sie
CalendarUnit
die Komponenten angeben, aus denen Sie extrahieren möchtenDate
.Siehe auch diese Antwort .
Methode 2
Methode 1 gab Ihnen die Komponenten, aber es wäre eine Menge Arbeit, diese Zahlen für jeden Stil, jede Sprache und jede Region zu formatieren. Und das musst du nicht. Dies wurde bereits für Sie mit der
DateFormatter
Klasse erledigt .Hier ist eine Fortsetzung des obigen Codes, der weitere Formatierungsoptionen zeigt:
Beachten Sie jedoch, dass dies für Englisch gilt und die Region auf die USA ausgerichtet ist. Für andere Sprachen und Regionen sieht die Formatierung anders aus.
Weitere Studie
quelle
Sie können auch die Convenience-Methode von NSDateFormatter verwenden, z.
quelle
Swift macht es wirklich einfach, Erweiterungen zu erstellen und zu verwenden. Ich erstelle eine
sharedCode.swift
Datei und füge Enums, Erweiterungen und andere lustige Dinge hinzu. Ich habe eineNSDate
Erweiterung erstellt, um einige typische Funktionen hinzuzufügen, die mühsam und hässlich sind und immer wieder eingegeben werden müssen:Mit dieser Erweiterung können Sie jetzt Folgendes tun:
Was für 11:51 Uhr ausschreiben würde:
quelle
Swift 2 Antwort:
quelle
Swift 4
AUSGABE
2018-Mai-01 10:41:31
quelle
Swift 3:
PS - Ich bin mir nicht sicher, was die Frage genau bedeutet, indem ich die aktuelle Uhrzeit (und Stunde) als Datums- und Uhrzeitangabe erhalte. Hoffentlich sollte das oben Genannte genug erklären, um die Frage zu beantworten.
quelle
Bietet mit Swift 5
Foundation
viele Möglichkeiten, den Stundenwert einesDate
Objekts abzurufen. Je nach Ihren Anforderungen können Sie eines der vier folgenden Spielplatz-Codefragmente auswählen .# 1. Mit
Calendar
dateComponents(_:from:)
MethodeCalendar
hat eine Methode namensdateComponents(_:from:)
.dateComponents(_:from:)
hat die folgende Erklärung:Verwendungszweck:
# 2. Mit
Calendar
component(_:from:)
MethodeCalendar
hat eine Methode namenscomponent(_:from:)
.component(_:from:)
hat die folgende Erklärung:Verwendungszweck:
#3. Mit
DateFormatter
dateFormat
ImmobilienDateFormatter
hat eine Eigenschaft namensdateFormat
.dateFormat
hat die folgende Erklärung:Verwendungszweck:
# 4. Mit
Dateformatter
setLocalizedDateFormatFromTemplate(_:)
MethodeDateformatter
hat eine Methode namenssetLocalizedDateFormatFromTemplate(_:)
.setLocalizedDateFormatFromTemplate(_:)
hat die folgende Erklärung:Verwendungszweck:
quelle
wenn Sie nur die Stunde des Tages brauchen
quelle
In Swift 3
quelle
let calendar = Calendar.current; let unitFlags: Set<Calendar.Component> = Set<Calendar.Component ([.hour]); let components = calendar.dateComponents(unitFlags, from: self)
Verwenden des Datumsformatierers -Swift 3.0
Aktualisieren Sie Datum und Uhrzeit alle Sekunden
Hinweis: DateAndTime im Timer-Code ist der Klassenname .
quelle
Ich weiß, dass es viele Antworten gibt, aber ich denke, dass meine für viele bequemer sein können
quelle
Sie können dies versuchen
Rufen Sie nun diese Methode auf und erhalten Sie das Datum mit Stunde, Minute und Sekunde
quelle
Sie können in schnell 4 oder 5 wie unten verwenden
Ouput wird wie unten sein
quelle
Xcode 8.2.1 • Swift 3.0.2
quelle
Date().hour
Hier ist die noch präzisere Swift 3/4-Implementierung, die die episch präzise Lösung von noiiv erweitert :
Swift 3/4
Wenn wir die Erweiterung von Leo Dabus erweitern , können wir außerdem Folgendes haben:
Und benutze es so:
quelle
Date
Objekt erhalten. Btw Kalender Komponente Methode ist besser geeignet für einzelne KomponenteDateComponents.year
Accessor istInt?
component
Methode für diese Accessoren zu verwendenfür nur Datum in einem bestimmten Format
quelle
Swift 5
und Aufruffunktion printTimestamp ()
quelle
Sie können eine Erweiterung erstellen
Date
, auf diese Weise können Sie sie problemlos in anderen Dateien aufrufen. Hier ist ein Beispiel für eine Datumserweiterung, die eine berechnete Eigenschaft verwendet.Es wird ausgedruckt: "Heute, 16:55 Uhr"
quelle
Sie können Swift4 oder Swift 5 wie folgt verwenden:
Ausgabe wie:
quelle
Wenn Sie die Antwort auf eine bestimmte Weise formatieren müssen, können Sie diese Methode einfach verwenden, die Standardeinstellung = "TT-MM-JJJJ".
Das Abrufen des heutigen Datums kann jetzt mit erfolgen
quelle
SWIFT 4:
quelle
quelle
Hier ist die SWIFT- Erweiterung, um Ihre aktuelle Geräteortungszeit (GMT) abzurufen.
Holen Sie sich jetzt Zeit: -
quelle
Funktioniert mit Swift 5 (Xcode 10 & Xcode 11) (von France UTC)
Wenn Sie nur das Datum anzeigen möchten, stellen Sie ein
formatter.dateFormat
Um nur Stunden anzuzeigen, wechseln Sie
formatter.dateFormat
zuVergessen Sie nicht , hinzuzufügen ,
getCurrentDateTime()
aufviewDidLoad
.quelle
Sie können von Dateformatter erhalten
quelle