1. 字符串转Date
- 格式如September 11th 2023, 14:37:11.877或September 3rd 2023, 14:37:11.877
public static void main(String[] args) {
String dateString = "September 11th 2023, 14:37:11.877";
Pattern pattern = Pattern.compile("(\\d+)(st|nd|rd|th)");
Matcher matcher = pattern.matcher(dateString);
dateString = matcher.replaceFirst("$1");
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM d yyyy, HH:mm:ss.SSS");
LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
System.out.println(dateTime.toLocalDate());
System.out.println(dateTime);
}
2023-09-11
2023-09-11T14:37:11.877
- 格式如28/8/2023 05:34:28.54或28/8/2023 05:34:28.542
public static void main(String[] args) {
String dateString1 = "28/8/2023 05:34:28.54";
String dateString2 = "28/8/2023 05:34:28.542";
DateTimeFormatter formatter = new DateTimeFormatterBuilder().appendPattern("d/M/yyyy HH:mm:ss")
.appendFraction(ChronoField.MILLI_OF_SECOND, 2, 3, true).toFormatter();
LocalDateTime dateTime1 = LocalDateTime.parse(dateString1, formatter);
LocalDateTime dateTime2 = LocalDateTime.parse(dateString2, formatter);
System.out.println("Parsed date 1: " + dateTime1);
System.out.println("Parsed date 2: " + dateTime2);
}
Parsed date 1: 2023-08-28T05:34:28.540
Parsed date 2: 2023-08-28T05:34:28.542