Formatage de date Java

Résolu/Fermé
aigle22_2418 Messages postés 19 Date d'inscription mardi 13 décembre 2022 Statut Membre Dernière intervention 3 mai 2023 - 19 janv. 2023 à 11:06
aigle22_2418 Messages postés 19 Date d'inscription mardi 13 décembre 2022 Statut Membre Dernière intervention 3 mai 2023 - 19 janv. 2023 à 12:28

Bonjour, 

j'ai écrit le code suivant dont le bute de récupérer une nouvelle date a partir d'une date sélectionner par l'utilisateur et en lui additionnant une période et a la fin elle devra être afficher  suivant le model de date jj-mm-aaaa , mais ça ne marche pas.

       int jj=0;
       int mm=0;
       int aa=0;
                jj=tjj.getValue();
                 mm=tmm.getValue();
                 aa=taa.getValue();
        
        if(dc.getDate()==null){

           JOptionPane.showMessageDialog(null, "selectionner une date de début ");
            }
         
              if(jj==0&& mm==0 && aa==0){
                   JOptionPane.showMessageDialog(null, "entrer une durée ");
           
          }else{
         
                
            Period p =Period.of( aa, mm, jj);
            Date date = dc.getDate();
            LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
            String formattedDate = df.format(localDate);
     
            dfl=localDate.plus(p);
            
            LocalDate localDate4 =dfl;
         
              DateTimeFormatter df1 = DateTimeFormatter.ofPattern("DD-MM-YYYY");
           localDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
             
              String fDate1 = df1.format(localDate4);

}
           

dans la variable localDate4 je trouve la date souhaité mais non formaté suivant le model jj-mm-aaaa

 dans la variable fDate1 je trouve une date formaté mais ce n'est pas vraiment une date exemple: 36-02-2023.


Windows / Chrome 109.0.0.0

2 réponses

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
19 janv. 2023 à 11:27

Bonjour,

 dans la variable fDate1 je trouve une date formaté mais ce n'est pas vraiment une date exemple: 36-02-2023.

​​​​​​Tu as utilisé DD-MM-YYYY mais "D" correspond au jour de l'année (le 36è jour c'est le 05/02), il faudrait plutôt utiliser "d" qui est le jour du mois (le 5 donc).

Il faudrait également éviter "Y"​ qui correspond à une "ISO week date" alors que tu devrais plutôt utiliser "y" pour l'année telle qu'on l'entends d'habitude.

Donc dd-MM-yyyy serait plus correct.

Plus d'information sur les formats :

https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/format/DateTimeFormatter.html


0
aigle22_2418 Messages postés 19 Date d'inscription mardi 13 décembre 2022 Statut Membre Dernière intervention 3 mai 2023 1
19 janv. 2023 à 12:28

je suis très reconnaissant ça fonctionne bien 

0