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

com.github.vendigo.acetest.conversion.DateConversions Maven / Gradle / Ivy

package com.github.vendigo.acetest.conversion;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Date;

class DateConversions {
    private static DateTimeFormatter outDateTimeFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS");
    private static DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    private static DateTimeFormatter dateTimeFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");

    /**
     * Parses LocalDate or LocalDateTime from the String (from Scenario to Assertion)
     */
    static Object parseDate(String str) {
        try {
            return LocalDateTime.parse(str, dateTimeFormat);
        } catch (DateTimeParseException e1) {
            try {
                return LocalDate.parse(str, dateFormat);
            } catch (DateTimeParseException e2) {
                return null;
            }
        }
    }

    /**
     * Format LocalDate for inserting into db as String.
     */
    static String formatLocalDate(LocalDate localDate) {
        return localDate.format(dateFormat);
    }

    /**
     * Format LocalDateTime for inserting into db as String.
     */
    static String formatLocalDateTime(LocalDateTime localDateTime) {
        return localDateTime.format(outDateTimeFormat);
    }

    /**
     * Convert Date to LocalDate or LocalDateTime based on time. (from Db to Assertion)
     */
    static Object convertDate(Date date) {
        LocalDateTime localDateTime = toLocalDate(date);
        int hour = localDateTime.getHour();
        int minute = localDateTime.getMinute();
        int second = localDateTime.getSecond();
        if (hour + minute + second == 0) {
            return localDateTime.toLocalDate();
        } else {
            return localDateTime;
        }
    }

    private static LocalDateTime toLocalDate(Date date) {
        if (date instanceof java.sql.Date) {
            LocalDate localDate = ((java.sql.Date) date).toLocalDate();
            return LocalDateTime.of(localDate, LocalTime.of(0, 0));
        }
        return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy