Rumah > Java > javaTutorial > Mengapa SimpleDateFormat Membuang 'Tarikh Tidak Dapat Dihuraikan'?

Mengapa SimpleDateFormat Membuang 'Tarikh Tidak Dapat Dihuraikan'?

Susan Sarandon
Lepaskan: 2025-01-01 02:22:09
asal
303 orang telah melayarinya

Why Does SimpleDateFormat Throw

Tarikh yang tidak boleh dihuraikan dengan SimpleDateFormat: Tentukan Tempat atau Gunakan DateTimeFormatter

Masalah:
W untuk menghuraikan tarikh, anda mungkin menghadapi ralat "java.text.ParseException: Tarikh tidak boleh dihuraikan," terutamanya apabila tempattempat tidak ditentukan.

Penjelasan:
SimpleDateFormat memerlukan tempattempat untuk menghuraikan tarikh dengan betul. Jika tiada yang dinyatakan, ia menggunakan tempat lalai sistem, yang mungkin tidak sepadan dengan format yang dihuraikan.

Penyelesaian:

  1. Sentiasa nyatakan locale: Gunakan kelebihan pembina SimpleDateFormat yang menerima hujah Locale. Contohnya:
SimpleDateFormat dtfmt = new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);
Salin selepas log masuk
  1. Gunakan DateTimeFormatter API moden:
  • DateTimeFormatter ialah API pilihan untuk pemformatan dan menghuraikan tarikh dan masa.
  • Ia memberikan lebih fleksibiliti dan kawalan ke atas pemformatan, termasuk keupayaan untuk menentukan tempat.

Demo dengan DateTimeFormatter:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        String strDateTime = "24 Oct 2016 7:31 pm";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("d MMM uuuu h:m a").withLocale(Locale.ENGLISH);
        LocalDateTime ldt = LocalDateTime.parse(strDateTime, dtf);
        System.out.println(ldt); // prints 2016-10-24T19:31
    }
}
Salin selepas log masuk

Nota:

  • tempat lalai yang ditentukan oleh DateTimeFormatter menggunakan tempat semasa sistem.
  • Sentiasa tentukan secara eksplisit tempat itu untuk mengelakkan isu penghuraian yang berpotensi.

Atas ialah kandungan terperinci Mengapa SimpleDateFormat Membuang 'Tarikh Tidak Dapat Dihuraikan'?. 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