Search code examples
javatimestampjodatime

Convert LocalDate to LocalDateTime or java.sql.Timestamp


I am using JodaTime 1.6.2.

I have a LocalDate that I need to convert to either a (Joda) LocalDateTime, or a java.sqlTimestamp for ormapping.

The reason for this is I have figured out how to convert between a LocalDateTime and a java.sql.Timestamp:

LocalDateTime ldt = new LocalDateTime();
DateTimeFormatter dtf = DateTimeFormatter.forPattern("yyyy-MM-dd HH:mm:ss");
Timestamp ts = Timestamp.valueOf(ldt.toString(dtf));

So, if I can just convert between LocalDate and LocalDateTime, then I can make the continued conversion to java.sql.Timestamp. Thanks for any nudges in the right direction!


Solution

  • JodaTime

    To convert JodaTime's org.joda.time.LocalDate to java.sql.Timestamp, just do

    Timestamp timestamp = new Timestamp(localDate.toDateTimeAtStartOfDay().getMillis());
    

    To convert JodaTime's org.joda.time.LocalDateTime to java.sql.Timestamp, just do

    Timestamp timestamp = new Timestamp(localDateTime.toDateTime().getMillis());
    

    JavaTime

    To convert Java8's java.time.LocalDate to java.sql.Timestamp, just do

    Timestamp timestamp = Timestamp.valueOf(localDate.atStartOfDay());
    

    To convert Java8's java.time.LocalDateTime to java.sql.Timestamp, just do

    Timestamp timestamp = Timestamp.valueOf(localDateTime);