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 :

Calendar.getInstance() renvoie une date fausse


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Calendar.getInstance() renvoie une date fausse
    Le code suivant
    import java.io.*;
    import java.util.Calendar;
    import java.util.GregorianCalendar;

    class GoogleTest{
    public static void main(String[] argv) throws IOException
    {
    Calendar cal = GregorianCalendar.getInstance();
    System.out.println( String.valueOf(cal.get(Calendar.YEAR))+"/"+
    String.valueOf(cal.get(Calendar.MONTH))+"/"+
    String.valueOf(cal.get(Calendar.DATE)));

    }

    }
    éxécuté le 26 mai 2009, me renvoie

    2009/4/26
    Je précise que je développe sous mac. L'horloge d'osx(en haut à droite), ou la commande date dans le terminal me renvoie toutes deux :
    26/05/2009.

    Est-ce que j'ai fait une erreur, ou bien est-ce que quelquechose comme l'horloge de java est déréglé ?

  2. #2
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,



    L'API de Calendar est un peu mal pensé : les identifiants des mois commencent à 0 :
    Calendar.JANUARY = 0
    Calendar.FEBRUARY = 1
    Calender.MARCH = 2
    Calendar.APRIL = 3
    Calendar.MAY = 4
    ...
    Il faut faire +1


    Mais si c'est uniquement pour de l'affichage, autant utilisé un DateFormat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
    	System.out.println( df.format(new Date()));
    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    ah merci beaucoup pour la rapidité.
    J'avais pensé à cette solution, mais j'avais décidé de l'écarter me disant que c'était de la bidouille.

    Effectivement c'est assez mal foutu.
    merci encore!

    (résolu)

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

Discussions similaires

  1. Nagios check_total_procs renvoie une réponse fausse via NRPE
    Par pausg dans le forum Administration système
    Réponses: 0
    Dernier message: 27/09/2011, 11h30
  2. Réponses: 1
    Dernier message: 04/02/2009, 02h54
  3. Réponses: 9
    Dernier message: 08/08/2007, 13h56
  4. Réponses: 3
    Dernier message: 12/07/2006, 09h13
  5. Réponses: 4
    Dernier message: 06/06/2006, 16h18

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