在Java8中使用 LocalDate 、LocalDateTime、TemporalAdjusters、TemporalField 获取 上周、上个月、去年、本周、本月、今年、下周、下个月、明年的相关数据

public static void main(String[] args) {DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");LocalDate today = LocalDate.now(); // 今天的日期LocalDate todayOfLastWeek  = today.minusWeeks(1);   // 上周的今天LocalDate todayOfLastMonth  = today.minusMonths(1); // 上个月的今天LocalDate todayOfLastYear  = today.minusYears(1);   // 去年的今天LocalDate todayOfNextWeek  = today.plusWeeks(1);    // 下周的今天LocalDate todayOfNextMonth  = today.plusMonths(1);  // 下个月的今天LocalDate todayOfNextYear  = today.plusYears(1);    // 明年的今天System.out.println("今年的第一天:" + today.with(TemporalAdjusters.firstDayOfYear()).toString());System.out.println("今年的最后一天:" + today.with(TemporalAdjusters.lastDayOfYear()).toString());System.out.println("本月的第一天:" + today.with(TemporalAdjusters.firstDayOfMonth()).toString());System.out.println("本月的最后一天:" + today.with(TemporalAdjusters.lastDayOfMonth()).toString());System.out.println("本周第一天:"+getOneDayOfWeek(today, 1));System.out.println("本周最后一天:"+getOneDayOfWeek(today, 7));System.out.println("***********************************");System.out.println("去年的第一天:" + todayOfLastYear.with(TemporalAdjusters.firstDayOfYear()).toString());System.out.println("去年的最后一天:" + todayOfLastYear.with(TemporalAdjusters.lastDayOfYear()).toString());System.out.println("上个月的第一天:" + todayOfLastMonth.with(TemporalAdjusters.firstDayOfMonth()).toString());System.out.println("上个月的最后一天:" + todayOfLastMonth.with(TemporalAdjusters.lastDayOfMonth()).toString());System.out.println("上周第一天:"+getOneDayOfWeek(todayOfLastWeek,1));System.out.println("上周最后一天:"+getOneDayOfWeek(todayOfLastWeek,7));System.out.println("***********************************");System.out.println("明年的第一天:" + todayOfNextYear.with(TemporalAdjusters.firstDayOfYear()).toString());System.out.println("明年的最后一天:" + todayOfNextYear.with(TemporalAdjusters.lastDayOfYear()).toString());System.out.println("下个月的第一天:" + todayOfNextMonth.with(TemporalAdjusters.firstDayOfMonth()).toString());System.out.println("下个月的最后一天:" + todayOfNextMonth.with(TemporalAdjusters.lastDayOfMonth()).toString());System.out.println("下周第一天:"+ getOneDayOfWeek(todayOfNextWeek,1));System.out.println("下周最后一天:"+ getOneDayOfWeek(todayOfNextWeek,7));System.out.println("***********************************");System.out.println("某天的开始时间:" + dtf.format(LocalDateTime.of(today, LocalTime.MIN)));System.out.println("某天的结束时间:" + dtf.format(LocalDateTime.of(today, LocalTime.MAX)));}/*** 获取一周中的某一天日期* @param today 这周内任意一天的日期* @param day 想要获取一周中的第几天* @return LocalDate*/private static LocalDate getOneDayOfWeek(TemporalAccessor today, int day){TemporalField fieldIso = WeekFields.of(DayOfWeek.MONDAY, 1).dayOfWeek();LocalDate localDate = LocalDate.from(today);return localDate.with(fieldIso, day);}

打印结果:

今年的第一天:2021-01-01
今年的最后一天:2021-12-31
本月的第一天:2021-01-01
本月的最后一天:2021-01-31
本周第一天:2021-01-04
本周最后一天:2021-01-10
***********************************
去年的第一天:2020-01-01
去年的最后一天:2020-12-31
上个月的第一天:2020-12-01
上个月的最后一天:2020-12-31
上周第一天:2020-12-28
上周最后一天:2021-01-03
***********************************
明年的第一天:2022-01-01
明年的最后一天:2022-12-31
下个月的第一天:2021-02-01
下个月的最后一天:2021-02-28
下周第一天:2021-01-11
下周最后一天:2021-01-17
***********************************
某天的开始时间:2021-01-08 00:00:00
某天的结束时间:2021-01-08 23:59:59

技 术 无 他, 唯 有 熟 尔。
知 其 然, 也 知 其 所 以 然。
踏 实 一 些, 不 要 着 急, 你 想 要 的 岁 月 都 会 给 你。


Java8获取年、月、周数据和某一天的开始结束时间相关推荐

  1. python从tushare获取数据_python调用tushare获取股票月线数据

    接口:monthly 描述:获取A股月线数据 限量:单次最大3700,总量不限制 积分:用户需要至少300积分才可以调取,具体请参阅本文最下方积分获取办法 注:tushare库下载和初始化教程,请查阅 ...

  2. lol3.10日服务器维护,英雄联盟3月10日更新维护时间 LOL10.5版本维护结束时间

    英雄联盟3月10日更新维护几点结束?英雄联盟3月10日再次迎来更新,本次更新的内容是10.5版本.和原来的大版本更新一样,本次更新会进行停机维护.相信不少玩家都很想知道维护结束的时间和维护更新的内容吧 ...

  3. 获取每年的周数据 第几周 开始日及结束日 思路

    public static void main(String[] args) {int year = 2023;SimpleDateFormat simpleDateFormat = new Simp ...

  4. Java8的LocalDate类用来获取年月日的开始结束时间,当前时间

    Java8的LocalDate类用来获取年月日的开始结束时间,当前时间 文章目录 Java8的LocalDate类用来获取年月日的开始结束时间,当前时间 一.获取本日开始结束时间? 二.获取本周开始结 ...

  5. hutool日期工具类相关:获取某月所有周、某周的起止时间或所有日期、计算连续天数

    目录 前言 实现 1.获取当月的所有周 2.根据指定的第几周,获取这周的开始.结束时间 3.获取当前月某一周的所有日期 4.多个日期中,计算最大的连续天数 5.判断指定日期是否在某个范围内 前言 最近 ...

  6. mysql获取当月数据_MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  7. MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  8. Java8 LocalDateTime 获取当前日周月年的起止时间

    Java8 LocalDateTime 常见使用_获取当天.本周.本月.本季度.本年度起止时间 一.返回 LocalDateTime 格式的起止时间 二.返回 String 格式的起止时间 一.返回 ...

  9. mysql 一周一月_mysql查询当天、本周,本月,上一个月的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

最新文章

  1. 基于Mozilla Thunderbird的扩展开发(四)---修改Thunderbird源代码实现自动保存附件...
  2. Android开发之LisitView的图文并排效果实现(源代码分享)
  3. linux jemalloc 内存分配器 安装与使用
  4. 【Python-ML】非线性映射降维-KPCA方法-新样本映射
  5. 腾讯、百度、小米等7家互联网各大厂的中台建设怎么样了?
  6. ACM算法--spfa算法--最短路算法
  7. Thymeleaf模板引擎处理日期输入框回显问题type=“date“类型的坑 和 单选按钮、复选框的回显
  8. Android 内存泄漏分析指北
  9. Pytorch实战从入门到精通第一部分——手写字符识别全流程
  10. 回答朋友的问题(关于 RTEMS 学习)
  11. vue3.0项目创建
  12. linux与Windows查看路由
  13. u盘获取计算机管理员权限,使用U盘需要管理员权限
  14. Qt Creator下载安装以及Qt和Qt Creator的区别
  15. /usr/bin/xauth: file /home/wj/.Xauthority does not exist
  16. 【内网渗透】域横向PTHPTKPTT哈希票据传递
  17. 取消福昕阅读器的小手的向下的箭头
  18. Nintendo Switch在线订阅包含什么?
  19. AFNetworking 返回3840
  20. mysql sandbox_用mysql_sandbox建立快速测试环境

热门文章

  1. oracle中的latch: cache buffers chains 与热块
  2. Daisy Chains
  3. 快速提升自身思维能力的方法总结
  4. gittortoise使用ssh秘钥
  5. 北风修仙笔记—2020年5月
  6. wps怎么删除分节符以及段落边框产生分隔线的取消方法
  7. 二进制(Binary)——八进制(Octal)
  8. CSDN社区关于水晶报表的讨论
  9. 揭秘国漫《武动乾坤》制作幕后 动作戏竟然真人演
  10. 无限宝电脑连接不上服务器,无限宝客户端登录过程问题