I'm trying to convert a String to Date. When I run my software I get this mistake, which is obvious I'm parsing it badly:

The mistake is this:

java.text.ParseException: Unparseable date: "2014-02-07 00:00:00"
   at java.text.DateFormat.parse(DateFormat.java:357)
   at com.parkinsoncontrol.WsParkinsonControl.consultConfiguration(WsParkinsonControl.java:200)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:601)
   at org.glassfish.webservices.InstanceResolverImpl$1.invoke(InstanceResolverImpl.java:143)
  at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150)
  at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261)
  at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
  at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
  at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
  at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
  at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
  at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:116)
  at org.glassfish.webservices.MonitoringPipe.process(MonitoringPipe.java:142)
  at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:119)
  at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
  at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
  at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
  at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
  at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:116)
  at com.sun.enterprise.security.webservices.CommonServerSecurityPipe.processRequest(CommonServerSecurityPipe.java:212)
  at com.sun.enterprise.security.webservices.CommonServerSecurityPipe.process(CommonServerSecurityPipe.java:144)
  at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:119)
  at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
  at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
  at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
  at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
  at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314)
  at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608)
  at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259)
  at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162)
  at org.glassfish.webservices.JAXWSServlet.doPost(JAXWSServlet.java:145)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
  at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
  at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
  at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
  at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
  at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
  at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
  at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
  at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
  at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
  at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
  at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
  at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
  at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
  at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
  at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
  at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
  at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
  at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
  at java.lang.Thread.run(Thread.java:722)

And the code which I'm developing is this:

DateFormat formatter; 
Date date ; 
formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss",Locale.ENGLISH);
    try {
        Date parsed = formatter.parse(dateI);
        System.out.append("La fecha es:"+parsed);
    } catch (ParseException ex) {
        Logger.getLogger(WsParkinsonControl.class.getName()).log(Level.SEVERE, null, ex);
    }

So, what I'm doing wrong?. Thanks so much and regards.

有帮助吗?

解决方案

This is your value:

2014-02-07 00:00:00

This is your format:

yyyy-MM-dd'T'HH:mm:ss

They don't match. Your format has a T in the middle - your value doesn't.

If all your values have a space instead of a T, just use:

yyyy-MM-dd HH:mm:ss

If some values have a T and some don't, you'll need to use multiple DateFormat instances.

Additionally, you should consider which time zone you want to use when parsing. Currently you're just using the system default time zone. Is that the actual time zone of the values?

其他提示

Are you trying to do this?

DateFormat formatter; 
Date date ; 
formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss",Locale.ENGLISH);
try {
    Date parsed = formatter.parse("2014-05-15T10:07:00");
    System.out.append("La fecha es:"+parsed);
}

Output: La fecha es:Thu May 15 10:07:00 EDT 2014

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top