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

时间:2020-04-24 08:46:39

标签: java parsing date

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

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

1 个答案:

答案 0 :(得分:1)

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

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提取datetime部分,然后解析结果,例如:

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);
相关问题