Rumah >Java >javaTutorial >Bagaimana untuk Membetulkan java.text.ParseException Apabila Menghuraikan Tarikh dalam Android?

Bagaimana untuk Membetulkan java.text.ParseException Apabila Menghuraikan Tarikh dalam Android?

Patricia Arquette
Patricia Arquetteasal
2024-12-19 10:18:15934semak imbas

How to Fix java.text.ParseException When Parsing Dates in Android?

Ralat Penghuraian Tarikh: java.text.ParseException dengan SimpleDateFormat

Pernyataan Masalah

Apabila menghuraikan rentetan tarikh menggunakan SimpleDateFormat dalam Android, ralat berikut berlaku:

java.text.ParseException: Unparseable date: "24 Oct 2016 7:31 pm" (at offset 3)

Penyelesaian: Tentukan Tempatan dengan SimpleDateFormat dan Gunakan DateTimeFormatter untuk Format Tersuai

Untuk menyelesaikan ralat, adalah penting untuk menyatakan secara eksplisit tempat semasa menggunakan SimpleDateFormat. Ini memastikan bahawa format tarikh ditafsirkan dengan betul berdasarkan konvensyen setempat.

Selain itu, amat disyorkan untuk beralih kepada API tarikh dan masa Java 8 moden, yang menyediakan fungsi yang dipertingkatkan dan menghapuskan potensi isu dengan lapuk API seperti SimpleDateFormat.

Untuk format tarikh tersuai, DateTimeFormatter harus digunakan dan bukannya SimpleDateFormat. Ia menawarkan penghuraian tidak peka huruf besar dan kecil, menyokong berbilang tempat dan secara keseluruhannya lebih fleksibel.

Contoh Kod

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

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", Locale.ENGLISH);
        LocalDateTime ldt = LocalDateTime.parse(strDateTime, dtf);
        System.out.println(ldt);
    }
}

Perangkap Tempatan Lalai

Tempat lalai boleh menjadi masalah apabila menghuraikan tarikh, kerana ia berbeza-beza bergantung pada tetapan tempat sistem. Untuk mengelakkan isu ini, sentiasa nyatakan tempat yang dikehendaki secara eksplisit.

Nota Tambahan

  • Mengsyorkan API Java 8: API tarikh dan masa Java 8 lebih banyak cekap, fleksibel dan mempunyai sokongan terbina dalam untuk berbilang zon masa. Adalah sangat digalakkan untuk berhijrah ke API ini untuk kefungsian dan penyelenggaraan yang lebih baik.
  • ThreeTen-Backport untuk Java 6 dan 7: Jika anda tidak dapat menaik taraf kepada Java 8, pertimbangkan untuk menggunakan ThreeTen-Backport untuk sandarkan fungsi tarikh dan masa Java 8 ke Java 6 dan 7.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan java.text.ParseException Apabila Menghuraikan Tarikh dalam Android?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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