Tôi có định dạng ngày mà tôi nhận được từ cơ sở dữ liệu và một loại Chuỗi. Nó có giá trị được lưu trữ giống như "2012-03-04 00: 00: 00.0" nhưng tôi đã khai báo SimpleDateFormat là "dd-MMM-yyyy HH: mm: ss" cần thiết trong dự án của tôi. Bây giờ bất cứ khi nào tôi lấy một số dữ liệu alsong với ngày từ cơ sở dữ liệu tôi nhận được một ngoại lệ phân tích cú pháp với nhật ký như dưới đây.Cách chuyển đổi "2012-03-04 00: 00: 00.0" thành Ngày có định dạng "dd-mm-yyyy HH: mm: ss" Sử dụng Java
java.text.ParseException: Unparseable date: "2012-03-04 00:00:00.0"
at java.text.DateFormat.parse(Unknown Source)
at com.tcs.tool.iris.aep.selfProfile.dao.AepSelfProfileDaoImpl$1.setValues(AepSelfProfileDaoImpl.java:1188)
at org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:892)
at org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:1)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:586)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:614)
at org.springframework.jdbc.core.JdbcTemplate.batchUpdate(JdbcTemplate.java:883)
at com.tcs.tool.iris.aep.selfProfile.dao.AepSelfProfileDaoImpl.insertDataIntoActionItems(AepSelfProfileDaoImpl.java:1174)
at com.tcs.tool.iris.aep.selfProfile.service.AepSelfProfileServiceImpl.insertDataIntoActionItems(AepSelfProfileServiceImpl.java:214)
at com.tcs.tool.iris.aep.selfProfile.controller.UpdateProgressController.onSubmit(UpdateProgressController.java:48)
at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:272)
at org.springframework.web.servlet.mvc.AbstractFormController.handleInvalidSubmit(AbstractFormController.java:675)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:275)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Hãy giúp tôi tìm ra điều gì sai với điều này. Và cách chuyển đổi nó thành định dạng đúng.
Đoạn mã mà tôi có được ngoại lệ như sau: -
SimpleDateFormat sdf = new SimpleDateFormat(
"dd-MMM-yyyy HH:mm:ss");
Calendar currenttime = Calendar.getInstance();
java.util.Date currentdate = currenttime.getTime();
String currentDateInsert = sdf.format(currentdate);
CommentNActionItem commentAndAction = commentActionItem
.get(i);
java.util.Date datefromDb = null;
try {
@SuppressWarnings("unused")
Date dateF=sdf.parse(commentAndAction.getCreatedDate());
datefromDb = (java.sql.Date)sdf.parseObject(commentAndAction.getCreatedDate());
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Bạn đã sử dụng định dạng nào để * phân tích cú pháp *? –
Vui lòng cung cấp cho chúng tôi nhiều * * nhiều ngữ cảnh (và mã). Tại sao bạn phân tích cú pháp văn bản chút nào khi tìm nạp giá trị từ cơ sở dữ liệu? Tại sao bạn không nhận được giá trị * như một ngày *? Kiểu dữ liệu trong cơ sở dữ liệu là gì? –
@ Anony-Mousse Tôi đã cập nhật đoạn mã. Và tôi chỉ cần định dạng HH: mm: ss yyyy-MM-dd. Dữ liệu có thể tạo thành DB có định dạng HHymmy-MM-dd HH: mm: ss.S được chuyển đổi không? –