Java8 时间使用示例
获取当前日期
LocalDate nowLocalDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String nowString = nowLocalDate.format(formatter);
获取当前时间
LocalTime localTime = LocalTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String stringTime = localTime.format(formatter)
获取当前日期加时间
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dateTime = LocalDateTime.now().format(formatter);
String dateTime = LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME);
自定义时间(LocalDate)
LocalTime localTime = LocalTime.parse("10:09:20");
LocalDate localDate = LocalDate.parse("2019-06-19");
LocalDateTime localDateTime = LocalDateTime.parse("2019-06-19T10:09:30");
计算两个日期的时间差
long days = LocalDate.now().toEpochDay();
long day = LocalDate.now().toEpochDay() - LocalDate.parse("2017-12-01").toEpochDay();
判断日期的先后,isAfter/isBefore
LocalDate date1 = LocalDate.parse("2019-06-19");
LocalDate date2 = LocalDate.parse("2019-06-20");
if (date1.isBefore(date2)) {
System.out.println("date1在date2之前");
}
if (date2.isAfter(date1)) {
System.out.println("date2在date1之前");
}
Date和LocalDateTime转换
public static LocalDateTime date2LocalDate(Date date) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
}
public static LocalDateTime dateToLocalDate(Date date) {
return LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault());
}
public static Date localDate2Date(LocalDateTime localDateTime) {
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
}
public static Date localDateToDate(LocalDateTime localDateTime) {
return new Date(localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli());
}
LocalDateTime与时间戳的使用
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
public LocalDateTime timestamToLocalDateTime(long timestamp){
return LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), ZoneId.systemDefault());
}
public long localDateTimeToTimestamp(LocalDateTime localDateTime){
return localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
}
其它API
LocalDateTime localDateTime = LocalDateTime.now();
int dayOfMonth = localDateTime.getDayOfMonth();
int dayOfYear = localDateTime.getDayOfYear();
DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();
int dayofWeek = dayOfWeek.getValue();
LocalDateTime beforeDateTime = LocalDateTime.now().minusDays(1);
LocalDateTime nextDateTime = LocalDateTime.now().plusDays(1);
LocalDateTime beforeHourTime = LocalDateTime.now().minusHours(2);
LocalDateTime afterMinuteTime = LocalDateTime.now().plusMinutes(20);
boolean isLeapYear = LocalDate.now().isLeapYear();