Problème :
Lors de la conversion de millisecondes en date format utilisant SimpleDateFormat, le programme utilise la date de la machine, qui peut ne pas représenter l'heure correcte dans un fuseau horaire différent.
Solution :
Pour gérer ce problème avec élégance, vous pouvez utiliser les approches suivantes :
<code class="java">Date date = new Date(millis); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS", Locale.US); String formattedDate = sdf.format(date);</code>
Utilisation d'Instant et ZonedDateTime :
<code class="java">Instant instant = Instant.ofEpochMilli(millis); ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.of("US/Central")); // Format the date DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS"); String formattedDate = zonedDateTime.format(formatter);</code>
Utilisation de LocalDateTime :
<code class="java">LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("US/Central")); // Format the date DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss,SSS"); String formattedDate = localDateTime.format(formatter);</code>
<code class="java">DateTime jodaTime = new DateTime(millis, DateTimeZone.forTimeZone(TimeZone.getTimeZone("US/Central"))); // Format the date DateTimeFormatter parser1 = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss,SSS"); String formattedDate = parser1.print(jodaTime);</code>
En utilisant ces approches, vous pouvez convertir des millisecondes en un format de date dans une langue locale- manière spécifique, en veillant à ce que l'heure correcte soit représentée.
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!