Formatter une date

Bonjour à  tous,

J'aimerais formater une date ayant le format "2012-11-09 11:10:53" vers un format plus lisible genre "jeudi 09 novembre 2012 à  11h10min" et bien sur "Thursday 09 Nov..." si'il sagit d'une appli en Anglais.



Est ce que la classe NSDateFormatter donne la possibilité de faire ceci.

Si oui comment !, si non vous me conseillez quoi faire.



Merci d'avance et bonne journée.
Mots clés:

Réponses

  • Ta question contient déjà  la réponse, justement en allant faire un tour dans la doc. de NSDateFormatter. Suffit de lire :-)
  • AliGatorAliGator Membre, Modérateur
    novembre 2012 modifié #3
    Hello



    Bien sûr que c'est possible avec NSDateFormatter, c'est même fait pour.



    Si ta date est une NSString au départ, l'idée est juste :
    1. d'interpréter ta chaà®ne "2012-11-09 11:10:53" pour la transformer en objet NSDate avec un NSDateFormatter et "dateFromString:" (en définissant le format d'entrée attendu pour le DateFormatter)
    2. de retransformer la NSDate obtenue en une NSString, dans l'autre sens, mais cette fois avec le format de sortie voulu




    PS : Pour le format d'entrée tu peux utiliser "setDateFormat:" pour convertir ta chaà®ne en date, mais pour le format de sortie et convertir ta date en chaà®ne je te conseille plutôt d'utiliser le DateStyle et TimeStyle qui permettent de fixer le format attendu de manière plus générique et prenant en compte les préférences de l'utilisateur (locale, prefs régionales, etc)
  • 'Kubernan' a écrit:


    Ta question contient déjà  la réponse, justement en allant faire un tour dans la doc. de NSDateFormatter. Suffit de lire :-)


    Merci, C'est déjà  la moitié de la réponse image/smile.png' class='bbc_emoticon' alt=':)' />
  • 'AliGator' a écrit:


    Hello



    Bien sûr que c'est possible avec NSDateFormatter, c'est même fait pour.



    Si ta date est une NSString au départ, il faut déjà  interpréter ta chaà®ne "2012-11-09 11:10:53" pour la transformer en objet NSDate (représentant une date dans le temps, indépendamment de toute représentation, quel que soit le calendrier, la locale, etc). Ce que tu peux faire avec un NSDateFormatter en précisant avec "setDateFormat:" le format d'entrée attendu pour qu'il interprète ta NSString correctement avec "dateFromString:".



    Puis ensuite une fois que tu as cette NSDate, tu peux formatter cette date à  nouveau en chaà®ne dans l'autre sens avec "stringFromDate:", mais cette fois en ayant pris soin bien sûr d'un format différent pour "setDateFormat:", celui qui correspond à  ton format de sortie voulu (tu peux pour cela aussi utiliser "setDateStyle:" et "setTimeStyle:" plutôt que de définir un "setDateFormat:" pour le coup, c'est même mieux car plus "portable" et générique pour s'adapter automatiquement aux réglages régionaux de l'iPhone de l'utilisateur, sa langue et ses préférences iOS).




    Réponse claire et précise je te remercie.

    image/implore.gif' class='bbc_emoticon' alt=' o:) ' />
Connectez-vous ou Inscrivez-vous pour répondre.