Anda cuba menghuraikan tarikh- rentetan masa "24 Okt 2016 7:31 malam" dengan pemformat tarikh-masa dtfmt disegerakkan dengan tempat lalai. Walau bagaimanapun, apabila kod berjalan pada telefon, ia menghadapi pengecualian ParseException dengan mesej "java.text.ParseException: Unparseable date: java.text.DateFormat.parse(DateFormat.java:579)".
Perincian penting dalam mesej pengecualian ini ialah sistem cuba menggunakan Tempatan lalai apabila menghuraikan tarikh, yang bukan seperti yang kami jangkakan. Secara lalai, Tempatan Android ditetapkan agar sepadan dengan bahasa sistem dan tetapan serantau. Untuk kebanyakan peranti, ini akan menjadi Tempatan selain bahasa Inggeris, mengakibatkan kegagalan penghuraian.
Sentiasa tentukan Tempatan secara eksplisit apabila mencipta pemformat masa tarikh, sama ada SimpleDateFormat atau DateTimeFormatter. Dalam kes anda, anda boleh menetapkan tempattempat kepada Locale.ENGLISH seperti berikut:
SimpleDateFormat dtfmt=new SimpleDateFormat("dd MMM yyyy hh:mm a", Locale.ENGLISH);<br>
Ini menentukan bahawa penghurai tarikh-masa harus menggunakan konvensyen bahasa Inggeris untuk menghuraikan rentetan tarikh-masa. Ini akan memastikan bahawa rentetan tarikh-masa yang sama dihuraikan dengan betul tanpa mengira tetapan tempat sistem.
Atas ialah kandungan terperinci Mengapa Penghuraian Tarikh Saya Gagal di Tempat Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!