Maison  >  Article  >  base de données  >  Voici quelques options de titre, axées sur le problème principal et la solution : Option 1 (directe et axée sur le problème) : * Pourquoi SimpleDateFormat.parse produit-il une sortie incohérente lors de la conversion des heures UNIX

Voici quelques options de titre, axées sur le problème principal et la solution : Option 1 (directe et axée sur le problème) : * Pourquoi SimpleDateFormat.parse produit-il une sortie incohérente lors de la conversion des heures UNIX

Susan Sarandon
Susan Sarandonoriginal
2024-10-27 20:46:01632parcourir

Here are a few title options, focusing on the core issue and solution:

Option 1 (Direct and Problem-Focused):

* Why does SimpleDateFormat.parse produce inconsistent output when converting UNIX timestamps?

Option 2 (More Specific to the Cause):

* Time

Différence de format de sortie SimpleDateFormatter.parse

Lors de la tentative de conversion d'un horodatage UNIX dans un format de date spécifique à l'aide de SimpleDateFormat, les utilisateurs peuvent rencontrer des incohérences entre les sorties formatées et analysées.

L'une des raisons de cet écart est le potentiel de fuseaux horaires incompatibles. Assurez-vous que le fuseau horaire de SimpleDateFormat correspond au résultat attendu. De plus, vérifiez que l'horodatage de l'époque est représenté en millisecondes, comme l'exige le constructeur de Date.

Solution suggérée :

Pour éviter les problèmes de formatage potentiels et garantir la compatibilité de la base de données, il est recommandé de transmettre les objets date directement à MySQL au lieu des chaînes. Utilisez les classes java.time, telles que LocalDateTime, pour représenter les dates et les heures.

Voici un extrait de code mis à jour :

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

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

Cette approche garantit que la date est formatée en fonction de l'heure spécifiée. zone et est stocké en tant qu'objet dans la base de données, éliminant ainsi le risque d'erreurs de formatage.

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