All Downloads are FREE. Search and download functionalities are using the official Maven repository.

be.looorent.jflu.TimestampConverter Maven / Gradle / Ivy

package be.looorent.jflu;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Optional;

import static java.time.format.DateTimeFormatter.ISO_DATE_TIME;
import static java.time.format.DateTimeFormatter.ofPattern;
import static java.util.Arrays.asList;
import static java.util.Optional.empty;
import static java.util.Optional.of;

public class TimestampConverter {

    private static final List DATE_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 DATE_FORMATS.stream()
                .map(formatter -> parseDate(formatter, dateAsString))
                .filter(Optional::isPresent)
                .map(Optional::get)
                .findFirst();
    }

    private static Optional parseDate(DateTimeFormatter formatter, String dateAsString) {
        try {
            return of(LocalDateTime.parse(dateAsString, formatter));
        } catch (Exception e) {
            return empty();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy