Rumah > Java > javaTutorial > Mengapa SimpleDateFormat Menghuraikan Tarikh Secara Salah dalam Format \'YYYY-MM-dd HH:mm\' dan Bagaimana Isu Ini Boleh Diselesaikan?

Mengapa SimpleDateFormat Menghuraikan Tarikh Secara Salah dalam Format \'YYYY-MM-dd HH:mm\' dan Bagaimana Isu Ini Boleh Diselesaikan?

Mary-Kate Olsen
Lepaskan: 2024-11-03 00:07:30
asal
939 orang telah melayarinya

Why Does SimpleDateFormat Incorrectly Parse Dates in the

Menghuraikan Tarikh dan Masa dalam Format "YYYY-MM-dd HH:mm" Menggunakan SimpleDateFormat

Pengenalan Masalah:

Apabila cuba menghuraikan String dalam format "YYYY-MM-dd HH:mm" menggunakan SimpleDateFormat, pengguna mungkin menghadapi hasil tarikh dan masa yang salah. Secara khususnya, tarikh yang dihuraikan mungkin tidak sepadan dengan tarikh yang dijangkakan.

Soalan:

Mengapa SimpleDateFormat tersalah menghuraikan tarikh dalam "TTTT-MM-dd HH:mm" format? Bagaimanakah isu ini boleh diselesaikan?

Jawapan:

SimpleDateFormat menggunakan huruf corak sensitif huruf besar untuk menghuraikan rentetan input. Untuk format tahun, "YYYY" mewakili tahun penuh dengan sifar pendahuluan, manakala huruf kecil "yyyy" mewakili tahun tanpa sifar pendahuluan. Dalam kod yang disediakan, huruf corak "YYYY" telah digunakan secara salah, menyebabkan penghuraian tarikh yang tidak dijangka.

Penyelesaian:

Untuk menghuraikan tarikh dan masa dengan betul, gunakan huruf kecil "yyyy" dalam corak:

<code class="java">SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.ENGLISH);</code>
Salin selepas log masuk

Dengan pembetulan ini, kod akan menghuraikan tarikh dalam format yang dijangkakan tanpa sebarang isu.

Pertimbangan Tambahan:

Apabila menggunakan SimpleDateFormat, semak huruf corak dengan teliti untuk memastikan ia sepadan dengan format yang diingini. Rujuk dokumentasi API Java untuk senarai lengkap huruf corak dan format tarikh/masa yang sepadan.

Kemas Kini Pangkalan Data:

Mengenai isu di mana masa ditetapkan semula kepada 00:00 apabila mengemas kini tarikh dalam pangkalan data, pastikan jenis data lajur pangkalan data dan komponen masa objek tarikh Java adalah serasi. Jika lajur pangkalan data hanya menyimpan tarikh, komponen masa dalam objek Java akan diabaikan apabila dimasukkan.

Atas ialah kandungan terperinci Mengapa SimpleDateFormat Menghuraikan Tarikh Secara Salah dalam Format \'YYYY-MM-dd HH:mm\' dan Bagaimana Isu Ini Boleh Diselesaikan?. 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