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

Java Discussion :

Problème d'affichage de date


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Par défaut Problème d'affichage de date
    Bonjour,

    J'aurai besoin d'un petit coup de main sur l'affichage d'une date.

    La date est renseignée:

    classe.methode(new GregorianCalendar(2008,03,25));

    Ensuite dans ma classe, j'ai la méthode suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected static final SimpleDateFormat date = new SimpleDateFormat("dd/M/yyyy");
     
    	public void setCreation(GregorianCalendar cr)
    	{
    		creation=cr;
    		System.out.println(date.format(creation.getTime()));
    	}
    Et comme résultat c'est la date 25/4/2008 qui est affichée, je ne comprend pas pourquoi les mois sont augmentés de 1 (je sais que les mois sont de 0 à 11) et je n'arrive pas à afficher la bonne date.

    Si quelqu'un a une idée...

    En tout cas merci à vous

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    bah dans l'API Calendar les mois sont numérotés de 0 à 11. Donc de fait le mois 3 est avril, ce qui correspond au mois 4 dans le système normal.

    Donc le résultat que tu obtiens est parfaitement normal et logique. Et le SimpleDateFormat te sors les mois dans le référentiel "humain" (c'est à dire avec des mois de 1 à 12).

  3. #3
    Membre confirmé

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Par défaut
    zut j'avais pris le truc à l'envers, je me disais il va interpréter le 3 en mars en me l'afficher en 2

    Bon, il faut que j'arrive à décrementer de 1, si je fais :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected static final SimpleDateFormat date = new SimpleDateFormat("dd/M"+-1+"/yyyy");
    Cela ne marche pas, à qu'elle moment est-ce que je pourrai le faire??

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut, je crois que tu as pas tout compris en fait...
    Calendar numérote les mois de 0 à 11, c'est son problème... ce qui fait que si tu veux mettre mars, le troisième mois, pour Calendar tu lui donnes 2 (ou mieux : Calendar.MARCH).
    Ensuite ton DateFormat, il va formater la date pour qu'un humain puisse la lire. Le format interne utilisé par Calendar t'est égal dans ce cas, le formatteur donneras 1 pour janvier, car un humain comprends comme ca... Tu n'as a aucun moment besoin de décrémenter quoi que ce soit...

  5. #5
    Membre confirmé

    Inscrit en
    Décembre 2008
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 100
    Par défaut
    Salut Georges, j'ai compris la numérotation de Calendar mais le soucis c'est que je le voulais pas modifier la façon d'entrer la Date car au final ce n'est pas moi qui vais la rentrer.

    J'utilise donc cette méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void setCreation(GregorianCalendar cr)
    	{
    		creation=cr;
    		creation.add(GregorianCalendar.MONTH,-1);
    		System.out.println(date.format(creation.getTime()));
    	}
    Merci pour votre aide

  6. #6
    Invité
    Invité(e)
    Par défaut
    Euh...
    Pourquoi tu ajoutes -1 comme mois ? Tu as déjà un objet Calendar, donc il doit indiquer la bonne date, ou alors il a mal été créé... Je vois vraiment pas ton problème.
    Ton exemple du début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    new GregorianCalendar(2008,03,25);
    représente le 25 Avril 2008, donc ton formatteur l'affiche comme il faut...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/06/2007, 08h44
  2. Problème d'affichage de date dans un Label
    Par L'aigle de Carthage dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 04/05/2007, 09h00
  3. Problème d'affichage de date dans une base de donnée
    Par Gouyon dans le forum C++Builder
    Réponses: 7
    Dernier message: 11/04/2007, 07h57
  4. Problème d'affichage de date sous access 2003
    Par FuNkY48 dans le forum Access
    Réponses: 7
    Dernier message: 11/12/2006, 14h04
  5. problème d'affichage de date
    Par Commodore dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 07/12/2005, 08h50

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