IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

mettre la date au format 2007-12-19T16:22:21+01:00


Sujet :

Collection et Stream Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Par défaut mettre la date au format 2007-12-19T16:22:21+01:00
    Bonjour,
    dans le cadre de notre projet, nous devons mettre la date sous un format :2007-12-19T16:22:21+01:00 avec la methode suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    static String convertDate()
        {    //"2007-12-19T16:22:21+01:00"
            //"2008-03-18Tue12:02:46+0100"
            SimpleDateFormat Dt = new SimpleDateFormat("yyyy-MM-dEHH:mm:ssZ", new Locale("EN"));
            return Dt.format(new Date());
        }
    j'obtiens la date au format :2008-03-18Tue12:02:46+0100

    nous souhaitons donc savoir comment on peut afficher T au lieu de Tue et aussi comment afficher 01:00 au lieu de 0100

    je vous remercie d'avance pour votre aide.

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Utilisez Joda-Time

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new DateTime().toString()
    fourni directement la date au format ISO8601 ("yyyy-MM-ddTHH:mm:ss.SSSZ")

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2008-03-18T15:27:42.449+01:00

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Sinon en utilisant SimpleDateFormat :
    • Le T du format ISO ne correspond pas au jour mais simplement à la lettre T, utilisé comme séparateur entre la date et l'heure. Pour la mettre dans le pattern il suffit d'utiliser 'T'.
    • Le format du timezone du SimpleDateFormat ne peut malheureusement pas être modifié. Heureusement une simple regexp permet de le faire assez facilement dans ton cas : replaceAll("([0-9]{2})$", ":$1") insère les ':' devant les deux derniers chiffres de la chaine.



    Ce qui donne au final :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH);
    	String date = dt.format(new Date()).replaceAll("([0-9]{2})$", ":$1");
    	System.out.println(date);
    Maintenant si tu as de gros besoin au niveau de la gestion des dates le choix de Joda-Time s'impose !


    a++

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 568
    Par défaut
    merci pour vos reponses
    Citation Envoyé par adiGuba Voir le message
    Le T du format ISO ne correspond pas au jour mais simplement à la lettre T, utilisé comme séparateur entre la date et l'heure. Pour la mettre dans le pattern il suffit d'utiliser 'T'.
    effectivement nous avons vérifié en 2007-12-19 c'était un mercredi, et pourtant j'ai un T au lieu d'un W
    nous pensons que c'est une bonne idée d'utiliser replaceAll, personnellement je vais regarder d'avantage l'API regex


    merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CR XI] Mettre un date au format anglais
    Par klaver EDI dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 19/02/2012, 19h44
  2. Mettre une date SAS au format SAS
    Par tibss dans le forum SAS Base
    Réponses: 2
    Dernier message: 03/11/2010, 10h39
  3. mettre une date dans une cellule avec le bon format
    Par wrm8787 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/02/2009, 17h54
  4. mettre une date en format dd/mm/year en paramètre d'une fonction
    Par friedamichelle dans le forum Général Java
    Réponses: 2
    Dernier message: 03/03/2008, 18h09
  5. Réponses: 11
    Dernier message: 12/09/2007, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo