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

获取当前时间

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()));
LocalDateTime常用方法有: 1. of():根据指定的年、月、日、时、分、秒创建一个LocalDateTime对象。例如,LocalDateTime.of(2023, 3, 5, 10, 20, 30)可以创建一个表示2023年3月5日10:20:30的LocalDateTime对象。 2. now():获取当前的日期和时间的LocalDateTime对象。 3. getYear()、getMonth()、getDayOfMonth()等方法:获取LocalDateTime对象中的年、月、日等具体值。 4. plusXXX()、minusXXX()方法:在LocalDateTime对象上进行日期和时间的加减操作。例如,plusDays(1)可以将日期加1天。 5. withXXX()方法:修改LocalDateTime对象中的某个字段的值,返回一个新的LocalDateTime对象。例如,withYear(2024)可以将年份修改为2024年。 6. format()方法:将LocalDateTime对象格式化为指定的字符串。可以使用DateTimeFormatter类来指定日期时间的格式。 7. compareTo()方法:比较两个LocalDateTime对象的大小。 8. isBefore()、isAfter()方法:判断两个LocalDateTime对象的先后顺序。 9. toLocalDate()、toLocalTime()方法:将LocalDateTime对象转换为LocalDate对象或LocalTime对象。 这些方法可以帮助我们对日期和时间进行各种操作和处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [LocalDateTime常用方法,一文轻松解决掉你的烦恼!](https://blog.csdn.net/m0_69237510/article/details/129981759)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Scala - 时间工具类 LocalDateTime 常用方法整理](https://blog.csdn.net/BIT_666/article/details/130082525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值