I got java.text.ParseException error: Unmatched date

I want a date format like dd-MMM-yyyy. My code is:

String v_date_str="Sun Mar 06 11:28:16 IST 2011"; DateFormat formatter; formatter = new SimpleDateFormat("dd-MMM-yyyy"); Date date_temp=null; try { date_temp = (Date) formatter.parse(v_date_str); } catch (ParseException ex) { Logger.getLogger(Attendance_Calculation.class.getName()).log(Level.SEVERE, null, ex); } System.out.println("output: "+date_temp); 

But I got an error like:

  The log message is null. java.text.ParseException: Unparseable date: "Sun Mar 06 11:28:16 IST 2011" at java.text.DateFormat.parse(DateFormat.java:337) at org.fes.pis.jsf.main.Attendance_Calculation.btn_show_pending_appl_action(Attendance_Calculation.java:415) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(AstValue.java:187) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297) at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68) at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:99) at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88) at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:771) at javax.faces.component.UICommand.broadcast(UICommand.java:372) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:94) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:666) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:597) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:872) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.ssl.SSLReadTask.process(SSLReadTask.java:444) at com.sun.enterprise.web.connector.grizzly.ssl.SSLReadTask.doTask(SSLReadTask.java:230) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) 

Thanks for any help ....

But I want a date format in dd-MMM-yyyy format.

+6
source share
6 answers

You must change your code to:

 String v_date_str="Sun Mar 06 11:28:16 IST 2011"; DateFormat formatter; formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy"); Date date_temp=null; try { date_temp = (Date) formatter.parse(v_date_str); } catch (ParseException ex) { Logger.getLogger(Attendance_Calculation.class.getName()).log(Level.SEVERE, null, ex); } System.out.println("output: "+date_temp); 

Incorrect date format used for parsing date.

+5
source

Use this to make it work:

 SimpleDateFormat formatter=new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy"); 

You cannot parse a date with SimpleDateFormat , which is configured with a different format

+7
source

In this code, you say Java to parse the date using the specified format , and then print it. Therefore, the format string used must match the format of the input input string. Since this is not so, it is not surprising that it does not work.

To convert dates between two different formats, you probably want to use two different DateFormat objects: one for parsing and one for printing. A.

+3
source

Try using the following code:

 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.logging.Level; import java.util.logging.Logger; public class SimpleDateFormat02 { public static void main(String[] args) throws ParseException { String v_date_str="Sun Mar 06 11:28:16 IST 2011"; Date v_date = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH).parse(v_date_str); DateFormat formatter = null; formatter = new SimpleDateFormat("dd-MMM-yyyy"); Date date_temp=null; try { date_temp = (Date) formatter.parse("31-Dec-2012"); // String of same format a formatter } catch (ParseException ex) { //Logger.getLogger(Attendance_Calculation.class.getName()).log(Level.SEVERE, null, ex); ex.printStackTrace(); } System.out.println("output: "+ formatter.format(v_date)); } } 

This gives you the desired result!

+2
source

It works very well with me

SimpleDateFormat format1 = new SimpleDateFormat ("dd-MM-yyyy");

String formatted = format1.format (objectValue);
Date javaDate = format1.parse (formatted);

0
source

I got a solution like

 String v_date_str = "Sun Mar 06 11:28:16 IST 2011"; DateFormat formatter = new SimpleDateFormat("EEE MMM d HH:mm:ss zzz yyyy"); String d_temp; Date dTemp; try { dTemp = formatter.parse(v_date_str); formatter=new SimpleDateFormat("dd-MMM-yyyy"); d_temp=formatter.format(dTemp); System.out.println("val : " + d_temp); } catch (ParseException ex) { } 
-1
source

Source: https://habr.com/ru/post/885789/


All Articles