JDBC - How to Convert java.sql.Date to java.util.Date in Java with Example

How to convert java.sql.Date into a java.util.Date and vice-versa is a popular JDBC interview question which is also asked a follow-up question of the difference between java.sql.Date and java.util.Date which we have seen in our last article. Since both SQL date and Util date store values as a long millisecond, it's easy to convert them back and forth. Both java.sql.Date and java.util.Date provides a convenient method called getTime() which returns long millisecond equivalent of a wrapped date value. Here is a quick example of converting java.util.Date to java.sql.Date and then back to util Date. This article is in the next of earlier posts on Java Date and Time API  like How to convert Date to String and How to find current Date and Timestamp in Java on any timezone. if you haven't read them already you may find them useful.

Java Example to convert java.sql.Date to java.util.Date

How to convert java.sql.Date to java.util.Date in JavaAs stated above we have used getTime() method in this example to transfer long millisecond value form one Date type, java.sql.Date to another e.g. java.util.Date, in order to convert SQL Date into util Date:

public class DateConverter {

    public static void main(String args[]) throws InterruptedException {
        //creating instances of java.util.Date which represents today's date and time
        java.util.Date now = new java.util.Date();
        System.out.println("Value of java.util.Date : " + now);
        //converting java.util.Date to java.sql.Date in Java
        java.sql.Date sqlDate = new java.sql.Date(now.getTime());
        System.out.println("Converted value of java.sql.Date : " + sqlDate);
        //converting java.sql.Date to java.util.Date back
        java.util.Date utilDate = new java.util.Date(sqlDate.getTime());
        System.out.println("Converted value of java.util.Date : " + utilDate);

Value of java.util.Date : Tue Apr 10 00:12:18 VET 2012
Converted value of java.sql.Date : 2012-04-10
Converted value of java.util.Date : Tue Apr 10 00:12:18 VET 2012

That's all on how to convert java.sql.Date into a java.util.Date in Java. as you have seen its pretty easy to convert them by using getTime() method. There is another way to convert them using the String value of one Date and then converting String to java.util.Date but that's not recommended and using getTime() is more convenient than that.

Further Learning
JSP, Servlets and JDBC for Beginners: Build a Database App
Complete JDBC Programming Part 1 and 2
Java Platform: Working with Databases Using JDBC

Other JDBC tutorials for Java programmer


  1. when we converted java.util.date to java.sql.date the output is 2012-04-10, we are not getting the time here. What if I want the time also.

  2. Hi,
    i am facing same problem, what vivek is facing..,any solution for this?

    1. Hello Shantha and Vivek, the java.sql.Date only captures date part, If you need both date and time then please use java.sql.Timestamp class instead of java.sql.Date.

  3. what is this ??? i want more exameples and solutions

    1. Hi, what is your doubt? If you can tell, I may be able to help


Feel free to comment, ask questions if you have any doubt.