Problème date Java

Résolu
Bonjour,

J'ai un souci sur les date quand je doit insérer les données.

int dateJ = uneVisite.getDate().getDay();
int dateM = uneVisite.getDate().getMonth();
int dateA = uneVisite.getDate().getYear();
String date = dateA+"-"+dateM+"-"+dateJ+" 00:00:00";


Quand j’exécute mon code les quatre ligne ci-dessus me retourne:
'118-11-3 00:00:00'


Je voudrais que sa me retourne
'2018-11-03 00:00:00'

J'ai aussi
getDay() , getMonth() et getYear()
qui se barre dans le code je ne sais pas si il y a un rapport.

Pouvez-vous m’aidez ?

Merci D'avance pour vos réponses

1 réponse

  1. Modérateur
    Bonjour,

    Les méthodes sont barrées car elles sont dépréciées (depuis très très longtemps) et ne devraient donc plus être utilisées.

    Quant au résultat il est normal, le problème vient des méthodes qui ne font pas ce que tu penses, par exemple getYear renvoie le nombre d'années depuis 1900 (donc 118...)

    Regardes plutôt la méthode String.format ou la classe Calendar.
    1. Merci pour ta réponse KX

      je vais me renseigner sur la question
    2. La solution que j'ai trouvée et qui fonctionne dans mon cas :

      java.text.DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
      String uneDate = dateFormat.format(date);


      Voila, Merci pour l'aide fournis
    3. Modérateur
      @guewen56Que l'on peut aussi écrire directement avec String.format, sans utiliser DateFormat :

      String uneDate = String.format("%1$tF %1$tT", date);
    4. D'accord, à voir.

      Merci pour ta réponse KX