获取当前时间
System . out. println ( "当前时间:" + LocalDateTime . now ( ) ) ;
LocalDateTime转时间戳
System . out. println ( "LocalDateTime 转时间戳(毫秒):" + LocalDateTime . now ( ) . atZone ( ZoneId . systemDefault ( ) ) . toInstant ( ) . toEpochMilli ( ) ) ;
System . out. println ( "LocalDateTime 转时间戳(秒):" + LocalDateTime . now ( ) . atZone ( ZoneId . systemDefault ( ) ) . toInstant ( ) . getEpochSecond ( ) ) ;
格式化时间
DateTimeFormatter formatter = DateTimeFormatter . ofPattern ( "yyyy-MM-dd HH:mm:ss" ) ;
System . out. println ( "格式化后的日期:" + LocalDateTime . now ( ) . format ( formatter) ) ;
获取当天时间的0点
System . out. println ( "当天的零点: " + LocalDateTime . of ( LocalDateTime . now ( ) . toLocalDate ( ) , LocalTime . MIN) ) ;
获取当前是星期几
System . out. println ( "今天是星期(英文): " + LocalDateTime . now ( ) . getDayOfWeek ( ) ) ;
System . out. println ( "今天是星期(数字): " + LocalDateTime . now ( ) . getDayOfWeek ( ) . getValue ( ) ) ;
获取年份
System . out. println ( "当前时间所属于的年份: " + LocalDateTime . now ( ) . getYear ( ) ) ;
获取月份
System . out. println ( "当前时间所属于的月份: " + LocalDateTime . now ( ) . getMonth ( ) . getValue ( ) ) ;
获取天
System . out. println ( "当前时间所属于的天: " + LocalDateTime . now ( ) . getDayOfMonth ( ) ) ;
判断时间前后关系
LocalDateTime date = LocalDateTime . of ( 2022 , 8 , 14 , 14 , 10 , 55 ) ;
System . out. println ( "当前时间是否在 date 之前 " + LocalDateTime . now ( ) . isBefore ( date) ) ;
System . out. println ( "当前时间是否在 date 之后 " + LocalDateTime . now ( ) . isAfter ( date) ) ;
获取本周周一、周日
System . out. println ( "本周周一的日期:" + LocalDateTime . now ( ) . with ( DayOfWeek . MONDAY) . toLocalDate ( ) ) ;
System . out. println ( "本周周一的日期:" + LocalDateTime . now ( ) . with ( DayOfWeek . SUNDAY) . toLocalDate ( ) ) ;
获取上周周一、周日
System . out. println ( "上周周一:" + LocalDate . now ( ) . minusDays ( 7 ) . with ( DayOfWeek . MONDAY) ) ;
System . out. println ( "上周周日:" + LocalDate . now ( ) . minusDays ( 7 ) . with ( DayOfWeek . SUNDAY) ) ;
获取本月第一天
System . out. println ( "当月第一天:" + LocalDate . now ( ) . with ( TemporalAdjusters . firstDayOfMonth ( ) ) ) ;
获取当年第一天
System . out. println ( "当年第一天:" + LocalDate . now ( ) . with ( TemporalAdjusters . firstDayOfYear ( ) ) ) ;
获取下个月第一天
System . out. println ( "下个月第一天:" + LocalDate . now ( ) . with ( TemporalAdjusters . firstDayOfNextMonth ( ) ) ) ;
获取明年第一天
System . out. println ( "明年第一天:" + LocalDate . now ( ) . with ( TemporalAdjusters . firstDayOfNextYear ( ) ) ) ;
构造时间
System . out. println ( "构造时间(2022-12-12 12:12:12):" + LocalDateTime . of ( 2022 , 12 , 12 , 12 , 12 , 12 ) ) ;
判断两个时间是否相等
LocalDateTime date1 = LocalDateTime . of ( 2022 , 8 , 14 , 12 , 12 , 12 ) ;
LocalDateTime date2 = LocalDateTime . of ( 2022 , 8 , 14 , 16 , 12 , 12 ) ;
System . out. println ( "date1 == date2 ? " + date1. isEqual ( date2) ) ;
时间戳转LocalDateTime
long timestamp = System . currentTimeMillis ( ) ;
LocalDate localDate = Instant . ofEpochMilli ( timestamp) . atZone ( ZoneOffset . ofHours ( 8 ) ) . toLocalDate ( ) ;
System . out. println ( "时间戳转LocalDate:" + localDate) ;
ocalDateTime localDateTime = Instant . ofEpochMilli ( timestamp) . atZone ( ZoneOffset . ofHours ( 8 ) ) . toLocalDateTime ( ) ;
System . out. println ( "时间戳转LocalDateTime:" + localDateTime) ;
增加年份、月份、天数、小时、分、秒
System . out. println ( "当前时间增加一年:" + LocalDateTime . now ( ) . plusYears ( 1 ) ) ;
System . out. println ( "当前时间增加一个月:" + LocalDateTime . now ( ) . plusMonths ( 1 ) ) ;
System . out. println ( "当前时间增加一天:" + LocalDateTime . now ( ) . plusDays ( 1 ) ) ;
System . out. println ( "当前时间增加一个小时:" + LocalDateTime . now ( ) . plusHours ( 1 ) ) ;
System . out. println ( "当前时间增加一分钟:" + LocalDateTime . now ( ) . plusMinutes ( 1 ) ) ;
System . out. println ( "当前时间增加一秒钟:" + LocalDateTime . now ( ) . plusSeconds ( 1 ) ) ;
修改年份、月份、天、小时、分钟、秒
System . out. println ( "修改年份,修改成2023年:" + LocalDateTime . now ( ) . withYear ( 2023 ) ) ;
System . out. println ( "修改月份,修改成1月份:" + LocalDateTime . now ( ) . withMonth ( 1 ) ) ;
System . out. println ( "修改天数,修改成15号:" + LocalDateTime . now ( ) . withDayOfMonth ( 15 ) ) ;
System . out. println ( "修改小时,修改成18点:" + LocalDateTime . now ( ) . withHour ( 18 ) ) ;
System . out. println ( "修改分钟,修改成50分钟:" + LocalDateTime . now ( ) . withMinute ( 50 ) ) ;
System . out. println ( "修改秒,修改成30秒:" + LocalDateTime . now ( ) . withSecond ( 30 ) ) ;
获取两个时间的间隔
LocalDate time1 = LocalDate . of ( 2022 , 1 , 1 ) ;
LocalDate time2 = LocalDate . of ( 2022 , 1 , 9 ) ;
System . out. println ( "time1 与 time2 相差:" + Period . between ( time1, time2) . getDays ( ) + " 天" ) ;
Date 转LocalDateTime
Instant instant = new Date ( ) . toInstant ( ) ;
ZoneId zoneId = ZoneId . systemDefault ( ) ;
LocalDate nowDate = instant. atZone ( zoneId) . toLocalDate ( ) ;
System . out. println ( "Date 转LocalDateTime:" + nowDate) ;
LocalDateTime 转 Date
ZoneId zoneId = ZoneId . systemDefault ( ) ;
ZonedDateTime zdt = LocalDate . now ( ) . atStartOfDay ( ) . atZone ( zoneId) ;
System . out. println ( "LocalDateTime 转 Date :" + Date . from ( zdt. toInstant ( ) ) ) ;