Obtenir la date actuelle dans Swift 3? [fermé]

115

Comment puis-je définir la date actuelle de label.text dans Swift 3?

Je veux imprimer juste aujourd'hui à l'écran. Je n'ai pas trouvé comment faire ça.

En c # c'est très simple:

var date = DateTime.Now

J'ai besoin d'écrire 15.09.2016 en swift 3. merci

yucel
la source
2
Copie possible de stackoverflow.com/questions/24070450/…
koen
ça ne marche plus?
yucel
1
Avez-vous fait défiler jusqu'en bas pour la réponse Swift 3?
koen le
J'ai essayé mais je ne l'ai pas fait
yucel
1
Vous souhaitez probablement utiliser un NSDateFormatteret puis stringFromDate.
koen le

Réponses:

289

Vous dites dans un commentaire que vous voulez obtenir "15.09.2016".

Pour cela, utilisez Dateet DateFormatter:

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

Donnez le format souhaité au formateur:

formatter.dateFormat = "dd.MM.yyyy"

Obtenez la chaîne de résultat:

let result = formatter.string(from: date)

Définissez votre étiquette:

label.text = result

Résultat:

15.09.2016

Eric Aya
la source
2
Dans Swift 4.2, DateFormatter a les propriétés .dateStyle et .timeStyle. Au lieu de la syntaxe quelque peu opaque ci-dessus (qui donne un contrôle plus fin - voir nsdateformatter.com ), vous pouvez utiliser dateStyle combiné avec locale.
green_knight
63

Vous pouvez le faire de cette manière avec 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)
Jorge Casariego
la source
22
Je ne peux pas croire même après Swift 3 que la gestion des dates soit si mauvaise! C'est honteux étant donné que Date dans .NET était en version 1 en 2002 de mémoire. DateTime.Now ou DateTime.Now.Month sont tellement plus faciles!
csmith
1
Comment savoir si ce jour est un lundi, mardi ou mercredi?
Joseph Astrahan
1
Découvrez SwiftDate Cocoapod si vous souhaitez un moyen beaucoup plus simple d'interagir avec les dates rapidement.
Rob Norback
1
@csmith C'est parce que c'est toujours l'ancien NSDate mais avec la syntaxe Swift. Il n'a pas été réécrit. Vous avez raison cependant, c'est un peu pénible de travailler avec.
bandejapaisa