Java 使用带有额外字符的DateTimeFormatter分析日期

Java 使用带有额外字符的DateTimeFormatter分析日期,java,parsing,date,Java,Parsing,Date,如何使用带有额外字符的DateTimeFormatter解析字符串日期 示例:“我的生日是2001-01-01 10:14:14”您可以使用以下模式解析字符串: DateTimeFormatter formatter = DateTimeFormatter.ofPattern( "'My birthday is' uuuu-MM-dd HH:mm:ss" ); LocalDateTime ldt = LocalDateTime.parse(str, formatter); 输出

如何使用带有额外字符的DateTimeFormatter解析字符串日期


示例:“我的生日是2001-01-01 10:14:14”

您可以使用以下模式解析字符串:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
        "'My birthday is' uuuu-MM-dd HH:mm:ss"
);
LocalDateTime ldt = LocalDateTime.parse(str, formatter);
输出

2001-01-01T10:14:14

如果字符串已更改,则应使用例如regex提取日期时间部分,然后解析结果,例如:

String newStr = str.replaceFirst(".*?(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}).*?", "$1");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(
        "uuuu-MM-dd HH:mm:ss"
);
LocalDateTime ldt = LocalDateTime.parse(newStr, formatter);
System.out.println(ldt);

我的生日是静态的吗?它可能会改变。这回答了你的问题吗?伟大的它起作用了。。这是什么意思?“.*”(\\d{4}-\\d{2}-\\d{2}\\d{2}:\\d{2}:\\d{2})。*?“@developer如果是从字符串中提取日期时间部分的正则表达式,您可以查看以下内容