import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
/**
* @Author JavaAlpha
* @Description 日期,时间工具类--基于JDK1.8
* @Date 2019/9/29 0029 下午 2:12
* @Version 1.0
*/
public class DateUtil {
private static final DateTimeFormatter YMD = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private static final DateTimeFormatter YMDHM = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
private static final DateTimeFormatter YMDHMS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private static final DateTimeFormatter YMDHMSS = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");
private static final DateTimeFormatter YMDHMSF = DateTimeFormatter.ofPattern("yyMMddHHmmssSSSXXX");
public static void main(String[] args) {
LocalDateTime start = LocalDateTime.now();
LocalDateTime end = LocalDateTime.of(2019, 9, 29, 14, 30, 00);
StringBuilder sb = new StringBuilder();
sb.append(start).append("==");
sb.append(end);
System.out.println(sb.toString() + ",相差毫秒:"+ timeBetweenMilli(start, end));
System.out.println(sb.toString() + ",相差秒:"+ timeBetweenSecond(start, end));
System.out.println(sb.toString() + ",相差分钟:"+ timeBetweenMinute(start, end));
System.out.println(sb.toString() + ",相差小时:"+ timeBetweenHour(start, end));
System.out.println(sb.toString() + ",相差天:"+ daysBetweenDay(start, end));
}
/**
* 返回当前的日期
* @return
*/
public static LocalDate getCurrentLocalDate() {
return LocalDate.now();
}
/**
* 返回当前时间
* @return
*/
public static LocalTime getCurrentLocalTime() {
return LocalTime.now();
}
/**
* 返回当前日期时间
* @return
*/
public static LocalDateTime getCurrentLocalDateTime() {
return LocalDateTime.now();
}
/**
* 计算两个日期之间相差的毫秒数
* @param minDate 较小的时间
* @param maxDate 较大的时间
* @return 相差秒数
*/
public static long timeBetweenMilli(LocalDateTime minDate, LocalDateTime maxDate) {
Duration duration = Duration.between(minDate, maxDate);
return duration.toMillis();
}
/**
* 计算两个日期之间相差的秒数
* @param minDate 较小的时间
* @param maxDate 较大的时间
* @return 相差秒数
*/
public static long timeBetweenSecond(LocalDateTime minDate, LocalDateTime maxDate) {
Duration duration = Duration.between(minDate, maxDate);
return duration.getSeconds();
}
/**
* 计算两个日期之间相差的分钟数
* @param minDate 较小的时间
* @param maxDate 较大的时间
* @return 相差分钟数
*/
public static long timeBetweenMinute(LocalDateTime minDate, LocalDateTime maxDate) {
Duration duration = Duration.between(minDate, maxDate);
return duration.toMinutes();
}
/**
* 计算两个日期之间相差的小时数
* @param minDate 较小的时间
* @param maxDate 较大的时间
* @return 相差小时数
*/
public static long timeBetweenHour(LocalDateTime minDate, LocalDateTime maxDate) {
Duration duration = Duration.between(minDate, maxDate);
return duration.toHours();
}
/**
* 计算两个日期之间相差的天数
* @param minDate 较小的时间
* @param maxDate 较大的时间
* @return 相差天数
*/
public static long daysBetweenDay(LocalDateTime minDate, LocalDateTime maxDate){
Duration duration = Duration.between(minDate, maxDate);
return duration.toDays();
}
/**
* 判断日期是否相等
* @Param [dateA, dateB]
* @return boolean
**/
public static boolean dateEquals(LocalDateTime dateA, LocalDateTime dateB){
return dateA.equals(dateB);
}
}