DateFormat exception in Samsung device with Android 12 OS

Viewed 19

I have created an Application in that I uses DateTimeFormatter for some operations.

There is an issue in Samsung with Android 12 devices as mentioned below.

Caused by java.lang.IllegalArgumentException: Invalid format: "06-Sep-2022" is malformed at "Sep-2022"
   at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:945)
   at org.joda.time.DateTime.parse(DateTime.java:160)
   at com.vcs.ecp.views.CalendarPicker.getDayFromDate(CalendarPicker.java:298)
   at com.vcs.ecp.views.CalendarPicker.SetDates(CalendarPicker.java:199)
   at com.vcs.ecp.views.CalendarPicker.onCreate(CalendarPicker.java:51)

My code is:

private String getDayFromDate(String dateString) {
    DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MMM-yyyy");
    DateTime dateTime = DateTime.parse(dateString, formatted); // Line 298
    String day = dateFormatDay.format(dateTime.toDate());
    return day.substring(0, 3);
}

Passed argument to the function:

getDayFromDate("09-Sep-2022");

Note: It only crashed in Samsung with Android 12 devices.

1 Answers

An issue was resolved by adding Locale.

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MMM-yyyy").withLocale(Locale.US);
DateTime dateTime = DateTime.parse(dateString, formatter);
String day = dateFormatDay.format(dateTime.toDate());
return day.substring(0, 3);
Related