Mengapa SimpleDateFormat.parse Mengembalikan Format Berbeza Daripada Yang Ditentukan?

Susan Sarandon
Lepaskan: 2024-10-27 16:10:02
asal
909 orang telah melayarinya

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

SimpleDateFormatter.parse Memberi Output dalam Format Berbeza daripada Yang Ditentukan

Soalan ini timbul apabila cuba menukar cap masa UNIX kepada tarikh dengan tertentu format menggunakan SimpleDateFormat. Walaupun menetapkan format yang diingini, hasil sdf.parse muncul dalam format yang berbeza.

Penyelesaian:

Untuk menyelesaikan isu ini, adalah disyorkan untuk mengelak daripada melepasi tarikh sebagai rentetan ke pangkalan data MySQL. Sebaliknya, ia lebih selamat dan lebih ringkas untuk menghantar objek tarikh, terutamanya kejadian daripada API tarikh dan masa Java (java.time). Objek LocalDateTime sesuai dalam kes ini:

<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>
Salin selepas log masuk

Untuk storan pangkalan data, LocalDateTime mewakili datetime dalam format '2018-05-23T15:30'.

Untuk mengekalkan LocalDateTime dalam Pangkalan data MySQL:

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

Alternatif untuk Nilai UTC:

Jika nilai pangkalan data harus disimpan dalam UTC (Universal Time Coordinated), gunakan penukaran berikut:

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

Kelebihan Menggunakan java.time:

  • Melegakan kebimbangan pemformatan
  • Menyediakan API tarikh dan masa yang moden dan komprehensif

Atas ialah kandungan terperinci Mengapa SimpleDateFormat.parse Mengembalikan Format Berbeza Daripada Yang Ditentukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!