在编码的过程中实现时间字符串转换成LocalDateTime,让很多小白非常的棘手,以下小小代码,可以实现半自动化转换时间格式.
1.
/**
* 如果还有其他格式的话,直接往这里加就可以
*/
private static String[] timeFormat = {"yyyy-MM-dd","yyyy-MM-dd HH:mm","yyyy-MM-dd HH:mm:ss",
"yyyy-MM-dd'T'HH:mm:ss","yyyy-MM-dd'T'HH:mm","yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"yyyy/MM/dd","yyyy/MM/dd HH:mm","yyyy/MM/dd HH:mm:ss",
"yyyy/MM/dd'T'HH:mm:ss","yyyy/MM/dd'T'HH:mm","yyyy/MM/dd'T'HH:mm:ss.SSS'Z'"};
2.
/**
* 半自动将时间格式转换,例如: 2023-04-20
* @param dateTime 时间字符串
* @return LocalDateTime
*/
public static LocalDateTime getStrDateTimeToLocalDateTime(String dateTime) {
for (String s : timeFormat) {
LocalDateTime strDateTimeToLocalDateTime = getStrDateTimeToLocalDateTime(dateTime, s);
if (Objects.nonNull(strDateTimeToLocalDateTime)) {
return strDateTimeToLocalDateTime;
}
}
return null;
}
/**
* 半自动将时间格式转换,例如: 2023-04-20
* @param dateTime 时间字符串
* @return LocalDateTime
*/
public static LocalDateTime getStrDateTimeToLocalDateTime(String dateTime,String timeFormat) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(timeFormat);
try {
return LocalDateTime.parse(dateTime, dateTimeFormatter);
}catch (Exception e){
System.out.println("转换失败格式:"+timeFormat);
}
return null;
}
3-测试通过:
String date = "2023/04/20T15:15";
LocalDateTime strDateTimeToLocalDateTime = getStrDateTimeToLocalDateTime(date);
System.out.println(strDateTimeToLocalDateTime);