Transformation de date en swift 3
Patyom
Membre
Bonjour,
Je voudrais changer la présentation d'une date, voilà ce que j'ai : "03/11/2016" et je voudrais l' afficher comme çà : "3 Novembre 2016"
Est-ce qu'il y a une instruction pour cela (DateFormatter)?
et est-ce possible ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Voici la logique :
Pour transformer ton (NS)String ("03/11/2016"), utilise un (NS)DateFormatter avec le dateFormat correspondant afin d'avoir une (NS)Date.
Ensuite, change le dateFormat pour avoir celui que tu veux (JourEnChiffres MoisEnToutesLettres AnnéeEnChiffres), puis transforme la (NS)Date précédente en (NS)String.
Pour le dateFormat, il faut se référer à la documentation.
Dans ton cas, le premier dateFormat sera dd/MM/yyyy. Je te laisse volontairement deviner le suivant (avec peut-être un problème de locale pour avoir le mois en français, mais ça reste du détail). Si la date a une ou deux heures de différence, c'est sûrement la timeZone (regarde le +0000 ou autre), ne t'en occupes pas si à quelques heures prêt, tu as la bonne date.
Pourquoi je ne te donne pas directement la solution ? Car pour voir autant de problèmes sur StackOverflow concernant les dates (et 49% des cas concernent la compréhension du dateFormat et ne pas y mettre n'importe quoi en croisant les doigts, 49% autres concernent les timezones/fuseaux horaires, et les 2% restant sont un peu plus complexes et variés) , je te laisse essayer de comprendre comment fonctionne le dateFormat, car une fois que c'est maà®trisé, pratiquement plus aucune date ne te posera problème.
Il parait qu'iOS 23 gère les fuseaux horaires martien, à la demande de Musk ..
désolé Larme, je n'y arrive pas, j'y suis depuis ce matin.
j'ai fait çà avec un PlayGround
mais c'est ensuite que je ne suis plus dans le coup
il me faut transformer "res" en format "dd EEEE yyyy" donc ?
Je comprends comment cela se passe à partir de la "current Date"
mais pas à partir d'une saisie de date quelconque
Si cela t'embrouille de changer le dateFormat, tu peux créer un deuxième (NS)DateFormatter.
res est un objet de type (NS)Date, non ?
Bah, c'est bon alors, il suffit de faire comme avec la date courante.
Sinon, pour en revenir à ta question
Tu y étais presque.
En relisant ma question juste au-dessus (res est un objet de type (NS)Date, non ?), il ne faut pas transformer res en format untel, il faut mettre ce dateFormat au (NS)DateFormatter et l'appeler pour transformer la (NS)Date en (NS)String
Il y a les styles pour les dates (comme pour les nombres, les unités, les distances etc.) qui permettent d'obtenir une date dans plusieurs styles différents. Ils devraient être privilégier avant d'utiliser dateFormat.
Cool Larme,
ça marche :
Merci, je continue
Bonsoir,
Je cherche a afficher la date au format "EEEE dd MMMM yyyy HH: MM" et en Français dans Label ?
Il faut lire les docs sure DateFormatter :
En revanche je profite du sujet pour poser une question :
Comment fait-on si l'application est publiée également dans d'autres pays que la France pour que la date soit dans la langue de l'iPhone ?
à la place de :
que faut-il écrire ?
Merci.