1.将Long转化成LocalDateTime
public LocalDateTime toLocalDateTime(long time) {
Instant instant = Instant.ofEpochMilli(time);
ZoneId zone = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant, zone);
}
2.将LocalDateTime转化成Long
public Long toLong(LocalDateTime time) {
ZoneId zone = ZoneId.systemDefault();
Instant instant = time.atZone(zone).toInstant();
return instant.toEpochMilli();
return time.toInstant(ZoneOffset.of("+8")).toEpochMilli();
}
3.将Date转换成LocalDateTime
public LocalDateTime toLocalDateTime(Date date) {
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
return LocalDateTime.ofInstant(instant, zone);
}
4.将LocalDateTime转为自定义的时间格式的字符串
yyyy-MM-dd hh:mm:ss ->年-月-日 时:分:秒
public String getLocalDateTimeString(LocalDateTime dateTime, String format) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return dateTime.format(formatter);
}
5.将某时间字符串转为自定义时间格式的LocalDateTime
yyyy-MM-dd hh:mm:ss ->年-月-日 时:分:秒
public String getLocalDateTimeString(LocalDateTime dateTime, String format) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return dateTime.format(formatter);
}
6.给出一个时间戳,返回该时间所在日期凌晨的时间戳
public Long getTodayZero(Long date) {
Instant instant = Instant.ofEpochMilli(date);
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
LocalDate today = localDateTime.toLocalDate();
return LocalDateTime.of(today, LocalTime.MIN).toInstant(ZoneOffset.of("+8")).toEpochMilli();
}
7.给出一个时间戳,返回该时间所在日期的次日凌晨的时间戳
public Long getTomorrowZero(Long date) {
Instant instant = Instant.ofEpochMilli(date);
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
LocalDate today = localDateTime.toLocalDate();
return LocalDateTime.of(today.plusDays(1), LocalTime.MIN).toInstant(ZoneOffset.of("+8")).toEpochMilli();
}