在Java 8中将字符串转换为LocalDateTime

时间:2015-05-31 06:16:00

标签: java java-8

如何在Java 8中将字符串“23:00”转换为LocalDateTime? 这似乎不起作用,

LocalDateTime dateTime1 = LocalDateTime.parse("23:00", DateTimeFormatter.ofPattern("HH:mm"));

这是引发的异常,

java.time.DateTimeException: Unable to obtain LocalDateTime from TemporalAccessor: {},ISO resolved to 23:00 of type java.time.format.Parsed

2 个答案:

答案 0 :(得分:8)

您只将时间信息传递给解析器,并且需要创建LocalDateTime。解析器无法猜测LocateDateTime所需的Date部分。

使用

LocalDateTime time = 
    LocalTime.parse("23:00", DateTimeFormatter.ofPattern("HH:mm"))
        .atDate(LocalDate.now());

例如,如果您希望在23:00 今天

答案 1 :(得分:2)

你做不到。从hosts file开始:

  

LocalDate存储没有时间的日期。这会存储类似“2010-12-03”的日期,可用于存储生日。

     

LocalTime存储没有日期的时间。这会存储像'11:30'这样的时间,可用于存储开盘或收盘时间。

     

LocalDateTime存储日期和时间。这会存储类似'2010-12-03T11:30'的日期时间。

所以,如果你想这样做,你需要创建一个LocalTime。如果您确实需要LocalDateTime,请改用:documentation