LocalDateTime常用方法总结,总有你会用到的
11 个月前
获取当前时间
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 localDate = Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDate();
System.out.println("时间戳转LocalDate:" + localDate);
//时间戳转LocalDateTime
ocalDateTime localDateTime = Instant.ofEpochMilli(timestamp).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();
System.out.println("时间戳转LocalDateTime:" + localDateTime);
增加年份、月份、天数、小时、分、秒
System.out.println("当前时间增加一年:" + LocalDateTime.now().plusYears(1));//减少使用minusYears
System.out.println("当前时间增加一个月:" + LocalDateTime.now().plusMonths(1));//减少使用minusMonths
System.out.println("当前时间增加一天:" + LocalDateTime.now().plusDays(1));//减少使用minusDays
System.out.println("当前时间增加一个小时:" + LocalDateTime.now().plusHours(1));//减少使用minusHours
System.out.println("当前时间增加一分钟:" + LocalDateTime.now().plusMinutes(1));//减少使用minusMinutes
System.out.println("当前时间增加一秒钟:" + LocalDateTime.now().plusSeconds(1));//减少使用minusSeconds
修改年份、月份、天、小时、分钟、秒
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);