LocalDateTime.parseを直接使用して日付文字列(yyyy-MM-dd)をLocalDateTimeに変換すると、エラーが発生するため、参照用に日付文字列をLocalDateTimeに変換するメソッドを提供します。より良い方法がある場合は、共有することを歓迎します。
public static final String DATE_FORMAT = "yyyy-MM-dd";
public static LocalDateTime parserString2LocalDateTime(final String dateTime, final String formatter) {
if (StringUtils.isBlank(dateTime) || IBusinessEntity.NULL_VALUE.equalsIgnoreCase(dateTime)) {
return null;
}
if(dateTime.length() == 10){
return convertDate2LocalDateTime(convertLocalDate2Date(parserString2LocalDate(dateTime)));
}
return LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern(formatter));
}
public static LocalDate parserString2LocalDate(final String date) {
return parserString2LocalDate(date, DATE_FORMAT);
}
public static LocalDateTime convertDate2LocalDateTime(Date date) {
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
return localDateTime;
}