【发布时间】:2020-01-04 02:57:10
【问题描述】:
将 LocalDate 转换为 java.util.Date 时缺少时间信息
我的输入日期格式为“2019-08-30T19:47:22+00:00”(字符串)。我必须将其转换为 java.util.Data。我想用 java 8 来做。
String input = "2019-08-30T19:47:22+00:00";
Date date = null;
LocalDate dateTime = LocalDate.parse(input, DateTimeFormatter.ISO_OFFSET_DATE_TIME);
date = Date.from(dateTime.atStartOfDay(ZoneId.systemDefault()).toInstant());
System.out.println("Parsed from LoacalDate: " + date);
System.out.println("From new Date(): " + new Date());
输出
- 从本地日期解析:8 月 30 日星期五 00:00:00CDT 2019 来自新
- 日期():2019 年 8 月 30 日星期五 17:16:23 CDT
在输出时间信息丢失。如何获取时间信息?
【问题讨论】:
-
LocalDate没有时间。如果您需要时间,请查看LocalDateTime或ZonedDateTime或OffsetDateTime。但我很好奇你认为dateTime.atStartOfDay()做了什么。 -
LocalDate 的 javadoc 对那个类有什么看法?它代表什么?
-
附带问题:为什么必须将其转换为
java.util.Date?java.time已经推出 5 年了 - 您使用的是较旧的 API 吗?很多东西已经成功切换,尤其是 ORM。 -
@Clockwork-Muse 我正在使用图书馆。它期望 java.util.Date 中的日期
标签: java date java-8 localdate