DateUtil.java
package no.nav.data.common.utils;
import java.lang.management.ManagementFactory;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Locale;
public final class DateUtil {
public static final String DEFAULT_START = "0001-01-01";
public static final String DEFAULT_END = "9999-12-31";
public static final Locale LOCALE_NB = Locale.forLanguageTag("nb");
public static final DateTimeFormatter NORWEGIAN_FORMAT = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).withLocale(LOCALE_NB);
private DateUtil() {
}
public static String formatDateTime(LocalDateTime dateTime) {
return dateTime == null ? null : dateTime.format(DateTimeFormatter.ISO_DATE_TIME);
}
public static String formatDateTimeHumanReadable(LocalDateTime dateTime) {
return dateTime == null ? null : dateTime.format(NORWEGIAN_FORMAT);
}
public static String formatDate(LocalDate date) {
return date == null ? null : date.format(DateTimeFormatter.ISO_DATE);
}
public static boolean isNow(LocalDate start, LocalDate end) {
return (start == null || start.minusDays(1).isBefore(LocalDate.now())) &&
(end == null || end.plusDays(1).isAfter(LocalDate.now()));
}
public static LocalDate parse(String date) {
return date == null ? null : LocalDate.parse(date);
}
public static LocalDate parseStart(String start) {
return start == null ? parse(DEFAULT_START) : parse(start);
}
public static LocalDate parseEnd(String end) {
return end == null ? parse(DEFAULT_END) : parse(end);
}
public static Duration uptime() {
return Duration.ofMillis(ManagementFactory.getRuntimeMXBean().getUptime());
}
}