How to Convert Java String to sql.Timestamp – Detailed Guide

The java.sql.Timestamp is a wrapper around the java.util.Date to map the SQL Timestamp values.

You can use Timestamp.valueOf(LocalDateTime.parse(“01022022 12:23:23”, DateTimeFormatter.ofPattern(“ddMMyyyy HH:mm:ss”))) function to convert Java String to sql.Timestamp object.

In this tutorial, you will learn different ways to convert a Java String to sq.Timestamp in detail.

Using LocalDateTime

The Java 8 LocalDateTIme can be used along with DateTimeFormatter to parse custom date formatted string to date-time values.

Check this tutorial for a detailed understanding of parsing a string to LocalDateTime, How to parse/format dates with Java 8 LocalDateTime

To convert a Java string to SQL.Timstamp value using LocalDateTime,

  • Define a DateTimeFormatter with a pattern("ddMMyyyy HH:mm:ss") matching the date string(01022022 12:23:23).
  • Use the LocalDateTime.parse(string, formatter) function to convert the date-time string to the LocalDateTime value.
  • Invoke the Timestamp.valueOf(localDateTime) method to convert the LocalDateTime to sql.Timestamp value.

Use this method to convert ISO 8601 formatted string or custom formatted string values to sql.Timestamp value.


    import java.sql.Timestamp;   
    import java.time.LocalDateTime;  
    import java.time.format.DateTimeFormatter;

    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("ddMMyyyy HH:mm:ss");  
    LocalDateTime localDateTime = LocalDateTime.parse("01022022 12:23:23", dateTimeFormatter);  

    Timestamp timeStamp = Timestamp.valueOf(localDateTime);  
    System.out.println(timeStamp);  //2022-02-01 12:23:23.0

In the above example, the custom DateTimeFormatter accepts a date-time string in a specific format and converts it to a LocalDateTime value. Then using the Timestamp.valueOf() method, the LocalDateTime value is converted to the Timestamp value.

Using TimeStamp formatted String

The Java sql.Timestamp represent date-time in specific pattern(yyyy-mm-dd hh:mm:ss / yyyy-mm-dd hh:mm:ss.fff..).
An sql.Timestamp formatted string can be converted to a Timestamp object using the Timestamp.valueOf(timeStampStr) method.

Use this method to convert simple timestamp formatted("yyyy-mm-dd hh:mm:ss.fff..") string.


    import java.sql.Timestamp; 

    String timeStampStr = "2011-10-02 18:48:05.123456";  
    Timestamp timeStamp = Timestamp.valueOf(timeStampStr);  
    System.out.println(timeStamp);  //2011-10-02 18:48:05.123456

    String timeStampStr1 = "2011-10-02 18:48:05";  
    Timestamp timeStamp1 = Timestamp.valueOf(timeStampStr1);  
    System.out.println(timeStamp1);  //2011-10-02 18:48:05.0

Using Date and Timestamp constructor

The Java Date class represents an instant in time.

To convert a Date string to SQL.Timstamp value,

  • Parse a date string to Date using the SimpleDateFormat.
  • Create a Timestamp value using Timestamp constructor(new Timestamp() ).
  • Pass the date milliseconds value extracted using date.getTime() to the constructor to get the Timestamp object.

Use this method for applications that still use for handling date values.


    import java.sql.Timestamp;  
    import java.text.DateFormat;  
    import java.text.ParseException;  
    import java.text.SimpleDateFormat;  
    import java.util.Date;

    //main throws ParseException
    DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");  
    Date date = dateFormat.parse("12/10/1990");  
    Timestamp timeStamp = new Timestamp(date.getTime());  
    System.out.println(timeStamp);  //1990-10-12 00:00:00.0

Using Instant

The Java 8 Instant is used to get the point-in-time value.

To get the Timestamp value using Instant,

  • Convert the millisecond’s values to Instant values using Instant.ofEpochMilli(epochMilli).
  • Pass Instant value toTimestamp.from(instant) method and it returns a Timestamp value.

Use this method when applications use date-time values in milliseconds.


    import java.sql.Timestamp;  
    import java.time.Instant;  

    String milliSeconds = "1677697076000";  
    long epochMilli = Long.parseLong(milliSeconds);  
    Timestamp timestamp = Timestamp.from(Instant.ofEpochMilli(epochMilli));  
    System.out.println(timestamp);  //2023-03-01 18:57:56.0

Related Topics

Leave a Comment