public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
System.out.println("当前时间: "+now);
//时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println("formate: "+ now.format(formatter));
//当天的零点
System.out.println("当天的零点: "+LocalDateTime.of(now.toLocalDate(), LocalTime.MIN));
//当天的最后时间
System.out.println("当天的最后时间: "+LocalDateTime.of(now.toLocalDate(), LocalTime.MAX));
//最近的五分钟点位
Integer minute = now.getMinute();
minute = minute/5*5;
System.out.println("最近的五分钟点位: "+LocalDateTime.of(now.getYear(), now.getMonth(), now.getDayOfMonth(), now.getHour(), minute, 0));
//Date转为LocalDateTime
Date date = new Date();
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
System.out.println("Date转为LocalDateTime: "+instant.atZone(zoneId).toLocalDateTime());
}
时间戳转LocalDate、LocalDateTime
//获取当前时间戳,精确到毫秒
long timestamp = System.currentTimeMillis();
//时间戳转LocalDate
LocalDate localDate = Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDate();
//时间戳转LocalDateTime
LocalDateTime localDateTime = Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();
两个LocalDate类型字段比较大小
/**
* 比较第一个日期是否大于第二个日期
* @param firstDate 第一个日期
* @param secondDate 第二个日期
* @return true-大于;false-不大于
*/
public boolean localDateIsBefore(LocalDate firstDate, LocalDate secondDate) {
return firstDate.isBefore(secondDate);
}
/**
* 比较第一个日期是否小于第二个日期
* @param firstDate 第一个日期
* @param secondDate 第二个日期
* @return true-小于;false-大于
*/
public boolean localDateIsAfter(LocalDate firstDate, LocalDate secondDate) {
return firstDate.isAfter(secondDate);
}
/**
* 比较两个日期是否相等
* @param firstDate 第一个日期
* @param secondDate 第二个日期
* @return true-相等;false-不相等
*/
public boolean localDateIsEqual(LocalDate firstDate, LocalDate secondDate) {
return firstDate.isEqual(secondDate);
}