package eu.dnetlib.ariadneplus.reader.utils; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; import java.time.temporal.ChronoField; public class ESUtils { private static DateTimeFormatter originalRecordDateFormatter = DateTimeFormatter.ofPattern("dd MMM yyyy"); private static DateTimeFormatter elasticSearchDateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); private static DateTimeFormatter yearOnlyDateFormatter = new DateTimeFormatterBuilder() .appendPattern("yyyy") .parseDefaulting(ChronoField.MONTH_OF_YEAR, 1) .parseDefaulting(ChronoField.DAY_OF_MONTH, 1) .toFormatter(); public static String getESFormatDate(String originalDate) { try { LocalDate parsedDate = LocalDate.parse(originalDate, originalRecordDateFormatter); return parsedDate.format(elasticSearchDateFormatter); } catch (Exception e) { LocalDate parsedDate = LocalDate.parse(originalDate, yearOnlyDateFormatter); return parsedDate.format(yearOnlyDateFormatter); } } }