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


2
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


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)

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.