DateAndTimeUtils.java
package com.github.badpop.jcoinbase.service.utils;
import io.vavr.control.Option;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import static io.vavr.API.Option;
/**
* Utility interface giving access to methods working on date and times like Instants,
* LocalDateTime, ...
*/
public interface DateAndTimeUtils {
/**
* This method transform a Java {@link Instant} to a Java {@link LocalDateTime} using the system
* default time zone and wrap it into a Vavr {@link Option}
*
* @param instant The instant to transform to a LocalDateTime
* @return an Option containing the LocalDateTime if it's ok, an empty Option otherwise
*/
static Option<LocalDateTime> fromInstant(final Instant instant) {
return Option(instant).map(value -> LocalDateTime.ofInstant(value, ZoneId.systemDefault()));
}
}