การแปลงสตริงของรูปแบบ java.sql.Date ไปเป็นสตริงของรูปแบบ java.util.date

ฉันกำลังพยายามแปลงสตริงวันที่ sql เป็นวันที่ปกติ แต่ฉันได้รับข้อยกเว้นนี้

java.text.ParseException: วันที่ที่ไม่สามารถแยกวิเคราะห์ได้: "2013-03-11" ที่ java.text.DateFormat.parse(Unknown Source) ที่ com.ninenexus.simplesignworkflow.Task.getTaskDetails(Task.java:1385) ที่ org.apache jsp.task_jsp._jspService(task_jsp.java:259) ที่ org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) ที่ javax.servlet.http.HttpServlet.service(HttpServlet.java:722) ที่ org .apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417) ที่ org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391) ที่ org.apache.jasper.servlet.JspServlet.service(JspServlet .java:334) ที่ javax.servlet.http.HttpServlet.service(HttpServlet.java:722) ที่ org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) ที่ org.apache.catalina.core ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) ที่ org.apache.catalina.core.StandardWrapperValve.invoid(StandardWrapperValve.java:240) ที่ org.apache.catalina.core.StandardContextValve.inrigg(StandardContextValve.java:161) ที่ org .apache.catalina.core.StandardHostValve.invoid(StandardHostValve.java:164) ที่ org.apache.catalina.valves.ErrorReportValve.inrigg(ErrorReportValve.java:100) ที่ org.apache.catalina.core.StandardEngineValve.inrigg(StandardEngineValve) .java:118) ที่ org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:380) ที่ org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) ที่ org.apache.coyote http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) ที่ org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166) ที่ org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor run(JIoEndpoint.java:288) ที่ java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ที่ java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ที่ java.lang.Thread.run(Unknown Source)

ฉันต้องการแบบนี้

จาก "2013-03-11" ถึง "11/03/2013" ฉันจะแก้ไขได้อย่างไร


person KhAn SaAb    schedule 03.04.2013    source แหล่งที่มา
comment
java.sql.Date คือ java.util.Date   -  person Perception    schedule 03.04.2013
comment
โพสต์โค้ดของคุณว่าคุณพยายามจะแปลงอย่างไร ตามข้อยกเว้น ดูเหมือนว่ารูปแบบของคุณไม่ถูกต้อง   -  person Sudhanshu Umalkar    schedule 03.04.2013
comment
ดูที่ stackoverflow.com/questions/2980583/   -  person Rais Alam    schedule 03.04.2013
comment
ฉันกำลังดึงวันที่จากฐานข้อมูล และแปลงให้เป็นปกติ   -  person KhAn SaAb    schedule 03.04.2013
comment
คุณกำลังบอกว่าคุณกำลังดึงข้อมูล java.sql.Date String - นั่นเป็นไปไม่ได้   -  person MadProgrammer    schedule 03.04.2013
comment
ลองใช้ SimpleDateFormat   -  person Franz Ebner    schedule 03.04.2013
comment
ฉันกำลังพยายามนำข้อเสนอแนะไปใช้   -  person KhAn SaAb    schedule 03.04.2013
comment
ตกลง บอกฉันหน่อยว่าฉันจะแปลงวันที่ 11-03-2556 ให้เป็นวันที่ 11-03-2556 ได้อย่างไร   -  person KhAn SaAb    schedule 03.04.2013


คำตอบ (3)


สิ่งที่คุณทำอยู่นั้นไม่สมเหตุสมผลเลย

อันดับแรก java.sql.Date เป็น java.util.Date อยู่แล้ว

ประการที่สอง java.sql.Date ไม่ใช่สตริงวันที่ของ SQL ทั้ง java.sql.Date และ java.util.Date ไม่เกี่ยวข้องกับรูปแบบวิธีการแสดงวันที่ กล่าวคือ ไม่มีวันที่ที่มี "2013-03-11" ในขณะที่อีกวันที่ประกอบด้วย "11/03/2013"

person Adrian Shum    schedule 03.04.2013

รับความช่วยเหลือจาก SimpleDateFormat คลาสและ parse สตริงวันที่เพื่อรับ Util Date object

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

    public class DateConverter {

        public static void main(String[] args) throws ParseException {

            String dateString = "03/04/2013";
            Date utiDate;
            SimpleDateFormat dateFormater = new SimpleDateFormat("dd/MM/yyyy");
            utiDate = dateFormater.parse (dateString);
            System.out.println(utiDate);
        }
    }
person Rais Alam    schedule 03.04.2013

ลองวิธีนี้:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date = df.parse("2013-03-11");   // convert string to date
df=new SimpleDateFormat("dd/MM/yyyy");
// date formatted in whatever format you want. 
System.out.println("The date is: " + df.format(date));
person Ruchira Gayan Ranaweera    schedule 28.07.2013