Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.text.ParseException: Unparseable date

I am getting a parsing exception while I am trying the following code:

    String date="Sat Jun 01 12:53:10 IST 2013";     SimpleDateFormat sdf=new SimpleDateFormat("MMM d, yyyy HH:mm:ss");     Date currentdate;     currentdate=sdf.parse(date);     System.out.println(currentdate); 

Exception:

Exception in thread "main" java.text.ParseException: Unparseable date: "Sat Jun 01 12:53:10 IST 2013" at com.ibm.icu.text.DateFormat.parse(DateFormat.java:510)

Input: Sat Jun 01 12:53:10 IST 2013

Expected output: Jun 01,2013 12:53:10

How to solve this?

like image 822
Ami Avatar asked Jun 01 '13 09:06

Ami


People also ask

How do I fix Unparseable date error in Java?

Try this: SimpleDateFormat in = new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy"); in. setTimeZone(TimeZone. getTimeZone("Asia/Calcutta")); //or Asia/Jerusalem String s2 = "Fri Oct 23 11:07:08 IST 2015"; Date date = in.

What is Unparseable date error?

parseexception: unparseable date” error message, when you try to parse the date string into another desired format. Don't worry it's a very common error message that users generally faced while parsing a date in java using SimpleDateFormat class.

How do you format a date in Java?

Java SimpleDateFormat ExampleString pattern = "MM-dd-yyyy"; SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); String date = simpleDateFormat. format(new Date()); System. out. println(date);

What is ParseException in Java?

public class ParseException extends Exception. Signals that an error has been reached unexpectedly while parsing. See Also: Exception , Format , FieldPosition , Serialized Form.


2 Answers

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.
like image 84
assylias Avatar answered Sep 20 '22 13:09

assylias


        String date="Sat Jun 01 12:53:10 IST 2013";         SimpleDateFormat sdf=new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy");         Date currentdate=sdf.parse(date);         SimpleDateFormat sdf2=new SimpleDateFormat("MMM dd,yyyy HH:mm:ss");         System.out.println(sdf2.format(currentdate)); 
like image 38
Radha Mohan Maheshwari Avatar answered Sep 20 '22 13:09

Radha Mohan Maheshwari