Aktuelles Datum in Swift 3 abrufen? [geschlossen]

114

Wie kann ich das aktuelle Datum von label.text in Swift 3 einstellen?

Ich möchte erst heute auf dem Bildschirm drucken. Ich habe nicht gefunden, wie das geht.

In c # ist sehr einfach:

var date = DateTime.Now

Ich muss 15.09.2016 in Swift 3 schreiben. Danke

Yucel
quelle
2
Mögliches Duplikat von stackoverflow.com/questions/24070450/…
koen
das funktioniert nicht mehr
Yucel
1
Haben Sie für die Swift 3-Antwort ganz nach unten gescrollt?
Koen
Ich habe es versucht, aber ich habe es nicht geschafft
Yucel
1
Sie möchten wahrscheinlich ein NSDateFormatterund dann verwenden stringFromDate.
Koen

Antworten:

289

Sie sagen in einem Kommentar, dass Sie "15.09.2016" erhalten möchten.

Verwenden Sie dazu Dateund DateFormatter:

let date = Date()
let formatter = DateFormatter()

Geben Sie dem Formatierer das gewünschte Format:

formatter.dateFormat = "dd.MM.yyyy"

Holen Sie sich die Ergebniszeichenfolge:

let result = formatter.string(from: date)

Legen Sie Ihr Etikett fest:

label.text = result

Ergebnis:

15.09.2016

Eric Aya
quelle
2
In Swift 4.2 verfügt DateFormatter über die Eigenschaften .dateStyle und .timeStyle. Anstelle der oben etwas undurchsichtigen Syntax (die eine feinkörnigere Steuerung bietet - siehe nsdateformatter.com ) können Sie dateStyle in Kombination mit dem Gebietsschema verwenden.
green_knight
63

Mit Swift 3.0 können Sie dies folgendermaßen tun:

let date = Date()
let calendar = Calendar.current
let components = calendar.dateComponents([.year, .month, .day], from: date)

let year =  components.year
let month = components.month
let day = components.day

print(year)
print(month)
print(day)
Jorge Casariego
quelle
22
Ich kann auch nach Swift 3 nicht glauben, dass die Datumsabwicklung so schlecht ist! Es ist beschämend, wenn man bedenkt, dass Date in .NET 2002 aus dem Speicher in Version 1 war. DateTime.Now oder DateTime.Now.Month sind so viel einfacher!
Schmied
1
Woher weißt du, ob dieser Tag ein Mo, Di oder Mi ist?
Joseph Astrahan
1
Schauen Sie sich SwiftDate Cocoapod an, wenn Sie eine viel einfachere Möglichkeit wünschen, schnell mit Daten zu interagieren.
Rob Norback
1
@csmith Das liegt daran, dass es immer noch das alte NSDate ist, aber mit Swift-Syntax. Es wurde nicht umgeschrieben. Du hast Recht, es ist ein bisschen mühsam, damit zu arbeiten.
Bandejapaisa