Java Data Type How to - Convert LocalTime to java.util.Date








Question

We would like to know how to convert LocalTime to java.util.Date.

Answer

import java.math.BigInteger;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.util.Date;
/*  w  ww .j  a  v a2s.c  om*/
public class Main {

  public static void main(String[] args) {
    LocalTime d = LocalTime.now();

    System.out.println(toDate(d));

  }

  public static Date toDate(LocalTime localTime) {
    Instant instant = localTime.atDate(LocalDate.now())
        .atZone(ZoneId.systemDefault()).toInstant();
    return toDate(instant);
  }

  public static Date toDate(Instant instant) {
    BigInteger milis = BigInteger.valueOf(instant.getEpochSecond()).multiply(
        BigInteger.valueOf(1000));
    milis = milis.add(BigInteger.valueOf(instant.getNano()).divide(
        BigInteger.valueOf(1_000_000)));
    return new Date(milis.longValue());
  }
}

The code above generates the following result.