LocalDateTime时间工具类:
public class LocalDateTimeUtils {
/**
* 获取指定日期所属周的周一的日期
* @param localDate
* @return
*/
public static LocalDateTime getMondayForThisWeek(LocalDate localDate) {
LocalDateTime monday = LocalDateTime.of(localDate, LocalTime.MIN).with(DayOfWeek.MONDAY);
return monday;
}
/**
* 获取指定日期所属周的周日的日期
* @param localDate
* @return
*/
public static LocalDateTime getSundayForThisWeek(LocalDate localDate) {
LocalDateTime sunday = LocalDateTime.of(localDate, LocalTime.MIN).with(DayOfWeek.SUNDAY);
return sunday;
}
/**
* 获取指定日期所属周的下周一的日期
* @param localDate
* @return
*/
public static LocalDateTime getMondayForNextWeek(LocalDate localDate) {
LocalDateTime monday = LocalDateTime.of(localDate, LocalTime.MIN).plusWeeks(1).with(DayOfWeek.MONDAY);
return monday;
}
/**
* 获取指定日期所属周的下周日的日期
* @param localDate
* @return
*/
public static LocalDateTime getSundayForNextWeek(LocalDate localDate) {
LocalDateTime sunday = LocalDateTime.of(localDate, LocalTime.MIN).plusWeeks(1).with(DayOfWeek.SUNDAY);
return sunday;
}
/**
* 指定格式为"yyyy-MM-dd HH:mm:ss"的字符串时间转化为LocalDateTime类型
* @param dateStr
* @return
*/
public static LocalDateTime getLocalDateTimeFromString(String dateStr) {
LocalDateTime localDateTime = LocalDateTime.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
return localDateTime;
}
/**
* LocalDateTime类型转化为格式为"yyyy-MM-dd HH:mm:ss"的字符串时间类型
* @param localDateTime
* @return
*/
public static String getStringFromLocalDateTime(LocalDateTime localDateTime) {
String localDateTimeStr = localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
return localDateTimeStr;
}
/**
* Date类型时间转化为LocalDateTime类型
* @param date
* @return
*/
public static LocalDateTime getLocalDateTimeFromDate(Date date) {
LocalDateTime localDateTime = date.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime();
return localDateTime;
}
/**
* LocalDateTime类型转化为Date类型时间
* @param localDateTime
* @return
*/
public static Date getDateFromLocalDateTime(LocalDateTime localDateTime) {
Date date = Date.from(localDateTime.toInstant(ZoneOffset.of("+8")));
return date;
}
/**
* 获取指定时间的00:00:00
* @param localDateTime
* @return
*/
public static LocalDateTime getLocalDateTimeForBegin(LocalDateTime localDateTime) {
LocalDateTime begin = LocalDateTime.of(localDateTime.toLocalDate(), LocalTime.MIN);
return begin;
}
/**
* 获取指定时间的23:59:59
* @param localDateTime
* @return
*/
public static LocalDateTime getLocalDateTimeForEnd(LocalDateTime localDateTime) {
LocalDateTime end = LocalDateTime.of(localDateTime.toLocalDate(), LocalTime.MAX);
return end;
}
/**
* 时间戳(毫秒)转化为LocalDateTime格式
* @param timestamp
* @return
*/
public static LocalDateTime getLocalDateTimeFromTimestamp(Long timestamp) {
LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(timestamp/1000, 0, ZoneOffset.ofHours(8));
return localDateTime;
}
/**
* LocalDateTime格式转化为时间戳(毫秒)
* @param localDateTime
* @return
*/
public static Long getTimestampFromLocalDateTime(LocalDateTime localDateTime) {
Long timestamp = localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
return timestamp;
}
}
工具测试类:
public class LocalDateTimeUtilsTest {
public static void main(String[] args) {
LocalDateTime monday = LocalDateTimeUtils.getMondayForThisWeek(LocalDateTime.now().plusDays(10).toLocalDate());
System.out.println(monday);
LocalDateTime mondayForNextWeek = LocalDateTimeUtils.getMondayForNextWeek(LocalDateTime.now().toLocalDate());
System.out.println(mondayForNextWeek);
LocalDateTime sunday = LocalDateTimeUtils.getSundayForThisWeek(LocalDateTime.now().toLocalDate());
System.out.println(sunday);
LocalDateTime sundayForNextWeek = LocalDateTimeUtils.getSundayForNextWeek(LocalDateTime.now().toLocalDate());
System.out.println(sundayForNextWeek);
LocalDateTime localDateTimeFromString = LocalDateTimeUtils.getLocalDateTimeFromString("2021-01-01 00:00:00");
System.out.println(localDateTimeFromString);
LocalDateTime localDateTimeFromDate = LocalDateTimeUtils.getLocalDateTimeFromDate(new Date());
System.out.println(localDateTimeFromDate);
LocalDateTime localDateTimeForBegin = LocalDateTimeUtils.getLocalDateTimeForBegin(LocalDateTime.now());
System.out.println(localDateTimeForBegin);
LocalDateTime localDateTimeForEnd = LocalDateTimeUtils.getLocalDateTimeForEnd(LocalDateTime.now());
System.out.println(localDateTimeForEnd);
String stringFromLocalDateTime = LocalDateTimeUtils.getStringFromLocalDateTime(localDateTimeForEnd);
System.out.println(stringFromLocalDateTime);
Date dateFromLocalDateTime = LocalDateTimeUtils.getDateFromLocalDateTime(LocalDateTime.now());
System.out.println(dateFromLocalDateTime);
LocalDateTime localDateTimeFromTimestamp = LocalDateTimeUtils.getLocalDateTimeFromTimestamp(1609748421751L);
System.out.println(localDateTimeFromTimestamp);
Long timestampFromLocalDateTime = LocalDateTimeUtils.getTimestampFromLocalDateTime(LocalDateTime.now());
System.out.println(timestampFromLocalDateTime);
}
}
测试类运行结果:
2021-01-11T00:00
2021-01-11T00:00
2021-01-10T00:00
2021-01-17T00:00
2021-01-01T00:00
2021-01-04T16:30:47.132
2021-01-04T00:00
2021-01-04T23:59:59.999999999
2021-01-04 23:59:59
Mon Jan 04 16:30:47 CST 2021
2021-01-04T16:20:21
1609749047141