将LocalTime(Java 8)转换为Date

Jba*_*ann 15 java date java-8 java-time

我正在尝试将java.time.LocalTime对象转换为java.util.Date但无法找到任何合适的方法.这样做的正确方法是什么?

有没有什么理由为什么java似乎没有内置的直接转换方法?

可能的重复:
如何转换joda时间 - 对我不起作用,可能我错过了一些"joda"库?
如何将Date转换为LocalTime? - 这反过来解决转换问题.

Dar*_*usz 19

LocalTime实际上无法转换为Date,因为它只包含DateTime 的时间部分.喜欢11点.但没有一天知道.你必须手动提供它:

LocalTime lt = ...;
Instant instant = lt.atDate(LocalDate.of(A_YEAR, A_MONTH, A_DAY)).
        atZone(ZoneId.systemDefault()).toInstant();
Date time = Date.from(instant);
Run Code Online (Sandbox Code Playgroud)

这是一篇博客文章,解释了新API和旧API之间的所有转换.

没有简单的内置转换方法,因为这些API以完全不同的方式接近日期和时间的概念.

  • Dariusz 意味着您必须提供四件事才能使用他的代码:一个 LocalTime 对象、一个表示年份的整数、一个表示月份的整数和一个表示日期的整数。另外,根据您想要此日期时间的位置,将“ZoneId.systemDefault”替换为特定的 ZoneId。例如,巴黎 12 月 3 日 12:30 比蒙特利尔早。 (2认同)

Ale*_*det 5

LocalTime lt = ...;
Instant instant = lt.atDate(LocalDate.of(A_YEAR, A_MONTH, A_DAY)).
        atZone(ZoneId.systemDefault()).toInstant();
Date time = Date.from(instant);
Run Code Online (Sandbox Code Playgroud)

来自:http : //blog.progs.be/542/date-to-java-time