Java8 LocalDateTime 常见使用_获取当天、本周、本月、本季度、本年度起止时间

  • 一、返回 LocalDateTime 格式的起止时间
  • 二、返回 String 格式的起止时间

一、返回 LocalDateTime 格式的起止时间


/*** @Description:返回 LocalDateTime 格式的日、周、月、季度、年起止时间* @Author: lsiyan* @Date: 2020/8/21 22:47*/
import java.time.*;
import java.time.temporal.TemporalAdjusters;/*** jdk8 获取当天,本周,本月,本季度,本年起始时间工具类 LocalDateTime*/
public class LocalDateTimeUtils {public static final String MinTime = "T00:00:00";public static final String MaxTime = "T23:59:59.999999999";/*** @Description:当天的开始时间* @Param: [today, isFirst: true 表示开始时间,false表示结束时间]*/public static LocalDateTime getStartOrEndDayOfDay(LocalDate today, Boolean isFirst){LocalDate resDate = LocalDate.now();if (today == null) {today = resDate;}if(isFirst){return LocalDateTime.of(today, LocalTime.MIN);}else{return LocalDateTime.of(today, LocalTime.MAX);}}/*** @Description:本周的开始时间* @Param: [today, isFirst: true 表示开始时间,false表示结束时间]*/public static LocalDateTime getStartOrEndDayOfWeek(LocalDate today, Boolean isFirst){String time = MinTime;LocalDate resDate = LocalDate.now();if (today == null) {today = resDate;}DayOfWeek week = today.getDayOfWeek();int value = week.getValue();if (isFirst) {resDate = today.minusDays(value - 1);} else {resDate = today.plusDays(7 - value);time = MaxTime;}LocalDateTime localDateTime = LocalDateTime.parse(resDate.toString() + time);return localDateTime;}/*** @Description:本月的开始时间* @Param: [today, isFirst: true 表示开始时间,false表示结束时间]*/public static LocalDateTime getStartOrEndDayOfMonth(LocalDate today, Boolean isFirst){String time = MinTime;LocalDate resDate = LocalDate.now();if (today == null) {today = resDate;}Month month = today.getMonth();int length = month.length(today.isLeapYear());if (isFirst) {resDate = LocalDate.of(today.getYear(), month, 1);} else {resDate = LocalDate.of(today.getYear(), month, length);time = MinTime;}LocalDateTime localDateTime = LocalDateTime.parse(resDate.toString() + time);return localDateTime;}/*** @Description:本季度的开始时间* @Param: [today, isFirst: true 表示开始时间,false表示结束时间]*/public static LocalDateTime getStartOrEndDayOfQuarter(LocalDate today, Boolean isFirst){String time = MinTime;LocalDate resDate = LocalDate.now();if (today == null) {today = resDate;}Month month = today.getMonth();Month firstMonthOfQuarter = month.firstMonthOfQuarter();Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);if (isFirst) {resDate = LocalDate.of(today.getYear(), firstMonthOfQuarter, 1);} else {resDate = LocalDate.of(today.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(today.isLeapYear()));time = MaxTime;}LocalDateTime localDateTime = LocalDateTime.parse(resDate.toString() + time);return localDateTime;}/*** @Description:本年度的开始时间* @Param: [today, isFirst: true 表示开始时间,false表示结束时间]*/public static LocalDateTime getStartOrEndDayOfYear(LocalDate today, Boolean isFirst){String time = MinTime;LocalDate resDate = LocalDate.now();if (today == null) {today = resDate;}if (isFirst) {resDate = LocalDate.of(today.getYear(), Month.JANUARY, 1);} else {resDate = LocalDate.of(today.getYear(), Month.DECEMBER, Month.DECEMBER.length(today.isLeapYear()));time = MaxTime;}LocalDateTime localDateTime = LocalDateTime.parse(resDate.toString() + time);return localDateTime;}

二、返回 String 格式的起止时间


/*** @Description:返回 String 格式的周、月、季度、年起止时间* @Author: lsiyan* @Date: 2020/8/21 22:47*/
import java.time.*;
import java.time.temporal.TemporalAdjusters;/*** jdk8 获取本周,本月,本季度,本年起始时间工具类 String*/
public class LocalDateTimeUtils {//本周的开始时间public static String getStartOrEndDayOfWeek(LocalDate today, Boolean isFirst){LocalDate resDate = LocalDate.now();if (today == null) {today = resDate;}DayOfWeek week = today.getDayOfWeek();int value = week.getValue();if (isFirst) {resDate = today.minusDays(value - 1);} else {resDate = today.plusDays(7 - value);}return resDate.toString();}//本月的开始时间public static String getStartOrEndDayOfMonth(LocalDate today, Boolean isFirst){LocalDate resDate = LocalDate.now();if (today == null) {today = resDate;}Month month = today.getMonth();int length = month.length(today.isLeapYear());if (isFirst) {resDate = LocalDate.of(today.getYear(), month, 1);} else {resDate = LocalDate.of(today.getYear(), month, length);}return resDate.toString();}//本季度开始时间public static String getStartOrEndDayOfQuarter(LocalDate today, Boolean isFirst){LocalDate resDate = LocalDate.now();if (today == null) {today = resDate;}Month month = today.getMonth();Month firstMonthOfQuarter = month.firstMonthOfQuarter();Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);if (isFirst) {resDate = LocalDate.of(today.getYear(), firstMonthOfQuarter, 1);} else {resDate = LocalDate.of(today.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(today.isLeapYear()));}return resDate.toString();}//本年度开始时间public static String getStartOrEndDayOfYear(LocalDate today, Boolean isFirst){LocalDate resDate = LocalDate.now();if (today == null) {today = resDate;}if (isFirst) {resDate = LocalDate.of(today.getYear(), Month.JANUARY, 1);} else {resDate = LocalDate.of(today.getYear(), Month.DECEMBER, Month.DECEMBER.length(today.isLeapYear()));}return resDate.toString();}public static void main(String[] args) {System.out.println("本周开始时间>>>" + getStartOrEndDayOfWeek(null, true));System.out.println("本周结束时间>>>" + getStartOrEndDayOfWeek(null, false));System.out.println("本月开始时间>>>" + getStartOrEndDayOfMonth(null, true));System.out.println("本月结束时间>>>" + getStartOrEndDayOfMonth(null, false));System.out.println("本季度开始时间>>>" + getStartOrEndDayOfQuarter(null, true));System.out.println("本季度结束时间>>>" + getStartOrEndDayOfQuarter(null, false));System.out.println("本年开始时间>>>" + getStartOrEndDayOfYear(null, true));System.out.println("本年结束时间>>>" + getStartOrEndDayOfYear(null, false));}
}

Java8 LocalDateTime 获取当前日周月年的起止时间相关推荐

  1. java8 日期范围内 日/周/月/季度/年 的日期结果集

    java8 日期范围内 日/周/月/季度/年 的日期结果集 /*** 根据时间范围列出所有日/周/月/季/年** @Author Moqi* @Date 2020/4/30* @Version V1. ...

  2. Java8 LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转

    本文收录在猪哥GitHub:https://github.com/pig6/Java 中,本项目收集一线大厂面试.实战.Java学习路线等. 本文目前提供:LocalDateTime获取时间戳(毫秒/ ...

  3. mysql 根据日期查询周、月、年起止时间

    查询周起止日期 SELECTDATE_ADD( '2019-11-12', INTERVAL - WEEKDAY ( '2019-11-12' ) DAY ) week_begin,DATE_ADD( ...

  4. 「Python|场景案例」如何获取音视频中声音片段的起止时间?

    本文主要介绍如何使用python的第三方库moviepy找出音视频中声音开始出现的位置以及声音结束的位置. 文章目录 场景描述 准备工作 解决方案 源代码 场景描述 假设我们有一段音频,音频开始有一段 ...

  5. LocalDateTime 获取当前(年/月)第一天及最后一天 及 获取当天起始时间

    // 获取今年第一天及最后一天 LocalDateTime firstDayOfYear = LocalDateTime.of(LocalDate.from(LocalDateTime.now().w ...

  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. Calendar获取当前季度、月、周的开始时间结束时间

    java在很多场合下会根据当前时间计算本季度的开始时间结束时间.当前月份的开始时间结束时间.当前周的开始时间以及结束时间.我这里整理下一个时间加工类,作为工具类记录下. 一.获取计算相关时间的方法如下 ...

  9. java8 LocalDate获取自然周的方法

    java8 LocalDate获取自然周的方法 最近在做项目的时候要获取日期所在月份的第几周,刚开始是使用localDate.of(ChronoField.ALIGNED_WEEK_OF_MONTH) ...

最新文章

  1. Devexpress 重新编译以后 重新生成DEMO
  2. [转]阿拉伯数字转一二三和壹贰叁
  3. 7-20上午刷题未知点集合
  4. python规则框架_Pytest框架【2】:用例规则
  5. Qt通过ODBC读取excel文件
  6. sql语法,未完待续
  7. 下一代AirPods可能就可以监测你的健康状况了
  8. Android 4.0 ICS SystemUI浅析——SystemUI启动流程
  9. python 安装setuptools时报Compression requires the (missing) zlib module错误的解决方案
  10. MFC 文档 视图 框架窗口间的关系 和消息传送规律
  11. 人工智能ai算法_AI算法比您想象的要脆弱得多
  12. c语言怎么编程简易计算器,可编程简易计算器(代码)
  13. Vue3+Vite快速搭建vue项目
  14. 毕业后拉开大家差距的原因
  15. php怎么黑admin管理员密码是什么,tplink管理员密码是什么?
  16. 三十一、利用微信搜索抓取公众号文章
  17. 马云重构阿里:或分拆成30家公司 整合3家上市
  18. 茶道茶文化PPT模板
  19. 博弈论 纳什均衡 囚徒困境 智猪博弈
  20. C# 中使用TCP连接设置超时问题

热门文章

  1. ida的一些工具下载
  2. impdp 导入报错
  3. 生活在数据时代;聊聊数据分析在当今社会生活中的有趣应用
  4. 打开viewer.jnlp文件
  5. 华为无线三层无线简单配置
  6. 如何实现可靠UDP传输
  7. 【Python】sorted函数的使用
  8. 钉钉调用新版待办任务
  9. 导入Excel至数据库中 quot;外部表不是预期格式quot;错误信息
  10. L298N双路驱动直流电机方案(支持PWM+正反转)