首页 > 解决方案 > 从包含周名和时间的字符串中解析时间

问题描述

我正在尝试仅解析时间,忽略字符串中的工作日,格式如下:“Monday 5AM”

这是我的代码:

String dateTxt = "Monday 5AM";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("ha");
LocalTime lt = LocalTime.parse(dateTxt, formatter);

它抛出一个异常: java.time.format.DateTimeParseException: Text 'Saturday 1AM' could not be parsed

如何仅从该字符串中解析时间?

标签: javajava-time

解决方案


您需要将格式更改为

"EEEE ha"

我还建议设置区域设置,以便您拥有正确的语言并支持 AM/PM

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE ha", Locale.ENGLISH);

我看到这个问题现在已经被编辑了,如果你只想要从解析LocalTime对象中提取或格式化它的时间

LocalTime lt = LocalTime.parse(dateTxt, formatter);
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("h a", Locale.ENGLISH);
System.out.println(lt);
System.out.println(lt.format(formatter2));

05:00 凌晨
5 点


推荐阅读