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

avec Java Discussion :

la classe Date en erreur


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de philo71
    Profil pro
    Account manager
    Inscrit en
    Avril 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Account manager

    Informations forums :
    Inscription : Avril 2005
    Messages : 242
    Par défaut la classe Date en erreur
    bonjour,
    je développe un petit programme qui gère des Dates, je rencontre des problèmes :
    1/
    Classe Date: il existe un constructeur prenant en paramètre trois entier, le premier contenant lannée moins 1900, le second le mois, le troisième le jour. Par exemple, pour créer un objet pour le 14 juillet 1789, il faut appeler le constructeur comme suit:
    new Date(1789-1900,7-1,14) ou si vous préférez new Date(-111,6,14). Pourquoi faut-il enlever 1900 à l'année? C'est très étrange et il n'y a pas de justification possible, mais c'est comme cela. Il faut également enlever un au nombre du mois car les mois sont numérotés de 0 à 11 dans la classe Date.
    2/ problème de conversion de classe String vers la classe Date
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
       
    import ...
    ...
    ...
       //try {
            //elimination "" et date
            tableau[2] = tableau[2].trim();
            int l3 = tableau[2].length();
            String[] date_tableau = new String[3];
            String temps = tableau[2].substring(1,l3);
            date_tableau = temps.split("/");
            date_tableau[0] = String.valueOf((Integer.parseInt(date_tableau[0]) - 1900)); 
            date_tableau[1] = String.valueOf((Integer.parseInt(date_tableau[1]) - 1));
            Date lejour = new Date(date_tableau[0] + "/" + date_tableau[1] + "/" + date_tableau[2]); // ici mon prog s'arrête !
            
            
            System.out.println(lejour);
         
            
            //}  catch (Exception e2) {
          //System.out.println("Erreur de format date !");
        //}
    voici l'erreur retrouné par l'execution
    java.lang.IllegalArgumentException
    at java.util.Date.parse(Date.java:617)
    at java.util.Date.<init>(Date.java:274)
    at Prog_cvs.main(Prog_cvs.java:47)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:267)
    >
    j'ai bien retranché l'année et le mois suivant les spécifications de JAVA de la class Date.
    J'ai donc un problème de conversion de la classe String vers la classe Date.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Tout est deprecated avec la classe Date. Tu ne devrais pas jouer avec.

    Calendar serait déjà un peu mieux, voire carrement ce qui a été ajouté avec Java 8 (https://soat.developpez.com/tutoriel...me-date-java8/)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/09/2017, 00h57
  2. [Développement] Classe Date
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 73
    Dernier message: 27/09/2011, 10h21
  3. Différence date .. problème #Erreur
    Par priest69 dans le forum Access
    Réponses: 1
    Dernier message: 06/10/2005, 15h04
  4. classe date générique ?
    Par lili_bzh dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/09/2004, 10h59
  5. [Date]Classe Date
    Par kaiser2003 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 03/09/2004, 09h38

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