Getting Error Java.Text.Parseexception: Unparseable Date: (At Offset 0) Even If the Simple Date Format and String Value Are Identical

java.text.ParseException: Unparseable date. dd MMM yyyy HH:mm:ss format

Try with:

String time = "24 Apr 2021 11:56:44";
Date timeOnLine = new SimpleDateFormat("dd MMM yyyy HH:mm:ss", Locale.US).parse(time);

Parse a Date String to another format

The variable names show that you are German, most likely working on a system with German language and date formatting. By default this also affects SimpleDateFormat output and parsing (unless you specify the Locale to be used)!

Between the German and the English/US formatted date string there is a small but significant difference:

Locale.ENGLISH: "Mon, 27 Jan 2020 21:31:16 +0100";
Locale.GERMAN: "Mo., 27 Jan 2020 21:31:16 +0100";

The date string you parse however uses the English date format, therefore you have to explicitly set Locale.US or Locale.ENGLISHwhen constructing the SimpleDateFormat:

simpleDateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH);

Afterwards you can parse the sample date string in your question.

Unparseable date Exception java date pattern

Use Locale.US so that it considers the month names in US format

SimpleDateFormat("dd-MMM-yyyy",Locale.US)

See this code run live at IdeOne.com.

Need help parsing String into date

you can set language as English here

SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
Date date = null;

try {
date = format.parse("Tue Nov 26 12:05:19 CET 2019");
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date);

java.text.ParseException: Unparseable date

Your pattern does not correspond to the input string at all... It is not surprising that it does not work. This would probably work better:

SimpleDateFormat sdf = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy",
Locale.ENGLISH);

Then to print with your required format you need a second SimpleDateFormat:

Date parsedDate = sdf.parse(date);
SimpleDateFormat print = new SimpleDateFormat("MMM d, yyyy HH:mm:ss");
System.out.println(print.format(parsedDate));

Notes:

  • you should include the locale as if your locale is not English, the day name might not be recognised
  • IST is ambiguous and can lead to problems so you should use the proper time zone name if possible in your input.

Keep getting ParseException: Unparseable date

Try this:

SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
Date date = null;
try {
date = formatter.parse("Sun May 20 18:07:13 EEST 2018");
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(date);

Parsing date crashes in Android 12

Adding the Local solved the issue. Works fine on both android 7 and 12.

DateFormat f = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy", Locale.US);


Related Topics



Leave a reply



Submit