I'm trying to convert a
Date
LocalTime
Date
LocalTime
Date
Calendar
Calendar
Date
date
fasttime
cdate
//create the date
String strTime ="2011-02-18 05:00:00.0";
Date date = format.parse(strTime);
//convert to calendar
Calendar cal = Calendar.getInstance();
cal.setTime(date);
//convert the date to a local time
Instant instant = Instant.ofEpochMilli(cal.getTimeInMillis());
LocalTime convert = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()).toLocalTime();
LocalTime
0
Your input is effectively a LocalDateTime
. It would be much simpler to simply parse that to a LocalDateTime
and then get the LocalTime
from that. No time zones to worry about, no somewhat-legacy classes (avoid Date
and Calendar
where possible...)
import java.time.*;
import java.time.format.*;
import java.util.*;
public class Test {
public static void main(String[] args) {
DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S", Locale.US);
String text = "2011-02-18 05:00:00.0";
LocalDateTime localDateTime = LocalDateTime.parse(text, formatter);
LocalTime localTime = localDateTime.toLocalTime();
System.out.println(localTime);
}
}