Masalah:
Apabila menukar milisaat kepada tarikh format menggunakan SimpleDateFormat, atur cara menggunakan tarikh mesin, yang mungkin tidak mewakili masa yang betul dalam zon waktu yang berbeza.
Penyelesaian:
Untuk mengendalikan isu ini dengan elegan, anda boleh menggunakan pendekatan berikut:
<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>
Menggunakan Instant and 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>
Menggunakan 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>
Dengan menggunakan pendekatan ini, anda boleh menukar milisaat kepada format tarikh dalam tempat- cara tertentu, memastikan masa yang betul diwakili.
Atas ialah kandungan terperinci Bagaimana untuk Menukar currentTimeMillis kepada Tarikh dengan Pemformatan Khusus Tempatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!