将本地时间 (Java 8) 转换为日期
我正在尝试将对象转换为,但找不到任何合适的方法。正确的方法是什么?java.time.LocalTime
java.util.Date
为什么java似乎没有内置的直接转换方法?
对可能的重复:
如何转换joda时间 - 不适合我,可能我错过了一些“joda”库?
如何将日期转换为本地时间? - 这解决了转换问题。
我正在尝试将对象转换为,但找不到任何合适的方法。正确的方法是什么?java.time.LocalTime
java.util.Date
为什么java似乎没有内置的直接转换方法?
对可能的重复:
如何转换joda时间 - 不适合我,可能我错过了一些“joda”库?
如何将日期转换为本地时间? - 这解决了转换问题。
LocalTime 实际上无法转换为 Date,因为它只包含 DateTime 的时间部分。比如11:00。但是没有一天是已知的。您必须手动提供它:
LocalTime lt = ...;
Instant instant = lt.atDate(LocalDate.of(A_YEAR, A_MONTH, A_DAY)).
atZone(ZoneId.systemDefault()).toInstant();
Date time = Date.from(instant);
这是一篇博客文章,解释了新旧API之间的所有转换。
没有简单的内置转换方法,因为这些API以完全不同的方式接近日期和时间的概念。
LocalTime lt = ...;
Instant instant = lt.atDate(LocalDate.of(A_YEAR, A_MONTH, A_DAY)).
atZone(ZoneId.systemDefault()).toInstant();
Date time = Date.from(instant);