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

org.sfm.map.column.time.JavaTimeHelper Maven / Gradle / Ivy

package org.sfm.map.column.time;

import org.sfm.map.ColumnDefinition;
import org.sfm.map.column.DateFormatProperty;
import org.sfm.map.column.TimeZoneProperty;
import org.sfm.map.column.joda.JodaDateTimeFormatterProperty;

import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

public class JavaTimeHelper {

    public static DateTimeFormatter getDateTimeFormatter(ColumnDefinition columnDefinition) {
        DateTimeFormatter dtf;

        if (columnDefinition.has(JodaDateTimeFormatterProperty.class)) {
            dtf = columnDefinition.lookFor(JavaDateTimeFormatterProperty.class).getFormatter();
        } else if (columnDefinition.has(DateFormatProperty.class)) {
            dtf = DateTimeFormatter.ofPattern(columnDefinition.lookFor(DateFormatProperty.class).getPattern());
        } else {
            throw new IllegalArgumentException("No date format pattern specified");
        }

        dtf = dtf.withZone(getZoneId(columnDefinition));

        return dtf;
    }

    public static ZoneId getZoneId(ColumnDefinition columnDefinition) {
        if (columnDefinition.has(JavaZoneIdProperty.class)) {
            return columnDefinition.lookFor(JavaZoneIdProperty.class).getZoneId();
        } else if (columnDefinition.has(TimeZoneProperty.class)) {
            return columnDefinition.lookFor(TimeZoneProperty.class).getTimeZone().toZoneId();
        }

        return ZoneId.systemDefault();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy