Not able to parse String date Sun Dec 06 11:15:00 IST 2015
using SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy")
when I use Locale.ENGLISH
in SimpleDateFormat
without Locale.ENGLISH
working but
Not able parse when app language changes to non-English language like Marathi/Hindi
.
I am able to parce other string date like 10 12 2018
to dd MM yyyy
but not above format.
Facing issue on Lollipop and kit-kat
devices. when I change Locale
to non-English language.
minSdkVersion 16 and targetSdkVersion 27
1.Tried following solutions.
EEE MMM dd HH:mm:ss Z yyyy ,EEE MMM dd HH:mm:ss z yyyy ,DateFormat etc
String tDueDate="Sun Dec 06 11:15:00 IST 2015";
SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.ENGLISH);
Date dt = sdf.parse(tDueDate);
sdf = new SimpleDateFormat("dd MMM yyyy", Locale.ENGLISH);
return sdf.format(dt);
Sat Oct 03 00:00:00 IST 2018 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: java.text.ParseException: Unparseable date: "Sat Oct 03 00:00:00 IST 2018" (at offset 20) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at java.text.DateFormat.parse(DateFormat.java:555) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at com.smartsms.util.EventsUtil.returnDateInDateFormat(EventsUtil.java:750) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at com.smartsms.fragment.EventsFragmentNew$MyTask.onPostExecute(EventsFragmentNew.java:1397) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at com.smartsms.fragment.EventsFragmentNew$MyTask.onPostExecute(EventsFragmentNew.java:1295) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at android.os.AsyncTask.finish(AsyncTask.java:632) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at android.os.AsyncTask.access$600(AsyncTask.java:177) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at android.os.Looper.loop(Looper.java:136) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5111) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at java.lang.reflect.Method.invokeNative(Native Method) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at java.lang.reflect.Method.invoke(Method.java:515) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events W/System.err: at dalvik.system.NativeStart.main(Native Method) 12-12 13:16:33.733 17653-17653/com.smartsms.organizer.events
Activitylocale: en_US
SimpleDateFormat
are you usingjava.text.SimpleDateFormat
orandroid.icu.text.SimpleDateFormat
? – Morrison Changjava.text.SimpleDateFormat;
format I am targeting minimum ofversion 16
– SagarLocale.US
instead. Suggested by the Android documentation on Locale - Be wary of the default locale – Morrison Changkitkat and lollipop
rest its working – SagarDate.toString
? Could you just avoid thetoString
call and instead get hold of the originalDate
object? – Ole V.V.