Ottenere la data corrente in Swift 3? [chiuso]


115

Come posso impostare la data corrente di label.text in Swift 3?

Voglio stampare proprio oggi sullo schermo. Non ho trovato come farlo.

In c # è molto semplice:

var date = DateTime.Now

Devo scrivere il 15.09.2016 in swift 3. grazie



questo non funziona più?
yucel

1
Hai fatto scorrere fino in fondo per la risposta di Swift 3?
koen

Ho provato ma non ce l'ho fatta
yucel

1
Probabilmente vorrai usare un NSDateFormatterand then stringFromDate.
koen

Risposte:


289

In un commento dici che vuoi ottenere "15.09.2016".

Per questo, usa Datee DateFormatter:

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

Dai il formato che desideri al formattatore:

formatter.dateFormat = "dd.MM.yyyy"

Ottieni la stringa del risultato:

let result = formatter.string(from: date)

Imposta la tua etichetta:

label.text = result

Risultato:

2016/09/15


2
In Swift 4.2, DateFormatter ha entrambe le proprietà .dateStyle e .timeStyle. Invece della sintassi un po 'opaca sopra (che offre un controllo più dettagliato - vedi nsdateformatter.com ) puoi usare dateStyle combinato con locale.
cavaliere_verde

63

Puoi farlo in questo modo con Swift 3.0:

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
Non riesco a credere anche dopo Swift 3 che la gestione della data sia così pessima! È vergognoso considerando che Date in .NET era nella versione 1 nel 2002 dalla memoria. DateTime.Now o DateTime.Now.Month sono molto più facili!
csmith

1
Come fai a sapere se quel giorno è lun, mar o mer?
Joseph Astrahan

1
Dai un'occhiata a SwiftDate Cocoapod se desideri un modo molto più semplice per interagire con le date in modo rapido.
Rob Norback

1
@csmith Questo perché è ancora il vecchio NSDate ma con sintassi Swift. Non è stato riscritto. Hai ragione però, è un po 'una seccatura con cui lavorare.
bandejapaisa
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.