Maison >base de données >tutoriel mysql >Comment convertir les dates « EEE MMM jj HH:mm:ss ZZZ aaaa » en java.sql.Date pour MySQL ?
Ce guide aborde le défi d'insérer avec précision des dates au format "EEE MMM dd HH:mm:ss ZZZ yyyy" dans une base de données MySQL à l'aide de java.sql.Date
. Un piège courant consiste à utiliser des méthodes qui conduisent à des valeurs de date incorrectes malgré l'absence d'erreurs explicites.
La solution recommandée utilise le package java.time
robuste :
<code class="language-java">LocalDate date4 = ZonedDateTime .parse(date, DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH)) .toLocalDate(); java.sql.Date date5 = java.sql.Date.valueOf(date4);</code>
Ce code analyse efficacement la chaîne de date, gère correctement les informations de fuseau horaire et la convertit en LocalDate
avant de finalement créer un java.sql.Date
adapté à l'insertion dans une base de données.
Considérations clés :
Locale
(ici, Locale.ENGLISH
) lors de la création de DateTimeFormatter
pour éviter toute ambiguïté et garantir une analyse cohérente sur différents systèmes. Alternativement, si vous préférez utiliser SimpleDateFormat
(bien que java.time
soit généralement préféré pour sa clarté et sa robustesse) :
<code class="language-java">SimpleDateFormat inputFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd");</code>
N'oubliez pas de faire correspondre méticuleusement les modèles de format ("EEE MMM dd HH:mm:ss zzz yyyy" et "aaaa-MM-dd") à votre entrée et à la sortie souhaitée, en accordant une attention particulière à la casse des lettres (telle que définie dans la SimpleDateFormat
documentation). Cependant, l'utilisation de java.time
est fortement encouragée pour sa gestion améliorée des erreurs et sa clarté.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!