
be.looorent.jflu.TimestampConverter Maven / Gradle / Ivy
The newest version!
package be.looorent.jflu;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Optional;
import static java.time.format.DateTimeFormatter.*;
import static java.util.Arrays.asList;
import static java.util.Optional.*;
public class TimestampConverter {
private static final List DATETIME_FORMATS = asList(
ofPattern("yyyy-MM-dd HH:mm:ss 'UTC'"),
ofPattern("yyyy-MM-dd HH:mm:ss X"),
ISO_DATE_TIME
);
private TimestampConverter() {
// Only static methods
}
public static Optional convertToLocalDateTime(String dateAsString) {
return DATETIME_FORMATS.stream()
.map(formatter -> parseDatetime(formatter, dateAsString))
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst();
}
public static Optional convertToLocalDate(String dateAsString) {
return ofNullable(dateAsString)
.flatMap(TimestampConverter::parseDate);
}
private static Optional parseDate(String dateAsString) {
try {
return of(LocalDate.parse(dateAsString, ISO_LOCAL_DATE));
} catch (Exception e) {
return empty();
}
}
private static Optional parseDatetime(DateTimeFormatter formatter, String dateAsString) {
try {
return of(LocalDateTime.parse(dateAsString, formatter));
} catch (Exception e) {
return empty();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy