Maison  >  Article  >  base de données  >  Pourquoi SimpleDateFormat.parse renvoie-t-il un format différent de celui spécifié ?

Pourquoi SimpleDateFormat.parse renvoie-t-il un format différent de celui spécifié ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 16:10:02910parcourir

 Why Does SimpleDateFormat.parse Return a Different Format Than Specified?

SimpleDateFormatter.parse donnant une sortie dans un format différent de celui spécifié

Cette question se pose lorsque vous essayez de convertir un horodatage UNIX en une date avec un formater en utilisant SimpleDateFormat. Malgré le réglage du format souhaité, le résultat sdf.parse apparaît dans un format différent.

Solution :

Pour résoudre ce problème, il est recommandé d'éviter de transmettre les dates comme chaînes à une base de données MySQL. Au lieu de cela, il est plus sûr et plus concis de transmettre des objets de date, en particulier des instances de l'API de date et d'heure Java (java.time). Un objet LocalDateTime convient dans ce cas :

<code class="java">String ep = "a1527069600";
long epoch = Long.parseLong(ep.substring(1));
Instant inst = Instant.ofEpochSecond(epoch);
LocalDateTime ldt = inst.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime();</code>

Pour le stockage de la base de données, LocalDateTime représente la date et l'heure au format '2018-05-23T15:30'.

Pour conserver le LocalDateTime dans un Base de données MySQL :

<code class="java">PreparedStatement ps = myDatabaseConnection.prepareStatement(
                "insert into my_table (my_date_time) values (?)");
    ps.setObject(1, ldt);</code>

Alternative pour les valeurs UTC :

Si les valeurs de la base de données doivent être stockées en UTC (temps universel coordonné), utilisez la conversion suivante :

<code class="java">LocalDateTime ldt = inst.atOffset(ZoneOffset.UTC).toLocalDateTime();</code>

Avantages de l'utilisation de java.time :

  • Soulage les problèmes de formatage
  • Fournit une API de date et d'heure moderne et complète

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn