Sta*_*nko 12 java date localtime
我正在尝试将Date
实例转换为LocalTime
实例.
// Create the Date
Date date = format.parse("2011-02-18 05:00:00.0");
// Convert to Calendar
Calendar cal = Calendar.getInstance();
cal.setTime(date);
// Convert Calendar to LocalTime
Instant instant = Instant.ofEpochMilli(cal.getTimeInMillis());
LocalTime convert = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()).toLocalTime();
Run Code Online (Sandbox Code Playgroud)
我没有得到编译器错误,但LocalTime
实例值是错误的.
我认为它不起作用,因为Date
存储时间fasttime
而不是cdate
.
我正在使用JDK 1.8版.
joh*_*den 13
这也很简单:
LocalTime time = LocalDateTime.ofInstant(new Date().toInstant(), ZoneId.systemDefault()).toLocalTime()
Jon*_*eet 10
你的输入实际上是一个LocalDateTime
.简单地将其解析为a LocalDateTime
然后从中得到它会简单得多LocalTime
.没有时区可以担心,没有一些遗留类别(避免Date
和Calendar
尽可能......)
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);
}
}
Run Code Online (Sandbox Code Playgroud)