Maison  >  Questions et réponses  >  le corps du texte

Pourquoi la conversion de java.util.Date en java.sql.Date entraîne-t-elle des dates inexactes ?

<p>Je convertis java.util.Date en java.sql.date afin d'insérer la date de naissance dans la base de données MySQL. </p> <p>Cependant, la saisie de <code>2001-04-03</code> entraîne toujours <code>java.sql.Date</code> </p> <pre class="brush:java;toolbar:false;">BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Entrez dob(AAAA-MM-JJ) :"); Date de chaîne = br.readLine(); SimpleDateFormat dateFormat = new SimpleDateFormat("AAAA-MM-JJ"); java.util.Date util_dob = dateFormat.parse(date); java.sql.Date dob = new java.sql.Date(util_dob.getTime()); ≪/pré> <p>Entrez : 2001-04-03</p> <p>Sortie : 2000-12-31</p> <p>Attente : 2001-04-03</p>
P粉883278265P粉883278265415 Il y a quelques jours370

répondre à tous(1)je répondrai

  • P粉237689596

    P粉2376895962023-09-02 00:55:05

    Votre chaîne de format est incorrecte.

    Veuillez consulter la documentation pour SimpleDateFormat : https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat.html

    • Lettre majuscule Y : modèle de lettre représentant anniversaire
    • Lettre majuscule M : Modèle de lettre représentant le mois de l'année(correct)
    • Lettre majuscule D : Modèle de lettre représentant le nombre de jours dans l'année

    Vous devez utiliser des lettres minuscules y et des lettres minuscules d.

    • lettre minuscule y : modèle de lettre représentant année
    • lettre minuscule d : modèle de lettre représentant les jours du mois

    Je pense que votre transformation devrait utiliser le modèle suivant :

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    

    répondre
    0
  • Annulerrépondre