LocalDateTime常用方法总结,总有你会用到的

转自:LocalDateTime常用方法总结,总有你会用到的 - 知乎 (zhihu.com)

获取当前时间

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);
System.out.println("time1 与 time2 相差:" + Period.between(time1, time2).getDays() + " 天");//相差月数:getMonths();相差年份:getYears()

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()));

发布于 2022-09-25 14:02

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值