Java8 LocalDateTime 获取当前日周月年的起止时间
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 获取当前日周月年的起止时间相关推荐
- java8 日期范围内 日/周/月/季度/年 的日期结果集
java8 日期范围内 日/周/月/季度/年 的日期结果集 /*** 根据时间范围列出所有日/周/月/季/年** @Author Moqi* @Date 2020/4/30* @Version V1. ...
- Java8 LocalDateTime获取时间戳(毫秒/秒)、LocalDateTime与String互转、Date与LocalDateTime互转
本文收录在猪哥GitHub:https://github.com/pig6/Java 中,本项目收集一线大厂面试.实战.Java学习路线等. 本文目前提供:LocalDateTime获取时间戳(毫秒/ ...
- mysql 根据日期查询周、月、年起止时间
查询周起止日期 SELECTDATE_ADD( '2019-11-12', INTERVAL - WEEKDAY ( '2019-11-12' ) DAY ) week_begin,DATE_ADD( ...
- 「Python|场景案例」如何获取音视频中声音片段的起止时间?
本文主要介绍如何使用python的第三方库moviepy找出音视频中声音开始出现的位置以及声音结束的位置. 文章目录 场景描述 准备工作 解决方案 源代码 场景描述 假设我们有一段音频,音频开始有一段 ...
- LocalDateTime 获取当前(年/月)第一天及最后一天 及 获取当天起始时间
// 获取今年第一天及最后一天 LocalDateTime firstDayOfYear = LocalDateTime.of(LocalDate.from(LocalDateTime.now().w ...
- mysql获取当月数据_MySQL中获取天、周、月等数据
MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...
- MySQL中获取天、周、月等数据
MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...
- Calendar获取当前季度、月、周的开始时间结束时间
java在很多场合下会根据当前时间计算本季度的开始时间结束时间.当前月份的开始时间结束时间.当前周的开始时间以及结束时间.我这里整理下一个时间加工类,作为工具类记录下. 一.获取计算相关时间的方法如下 ...
- java8 LocalDate获取自然周的方法
java8 LocalDate获取自然周的方法 最近在做项目的时候要获取日期所在月份的第几周,刚开始是使用localDate.of(ChronoField.ALIGNED_WEEK_OF_MONTH) ...
最新文章
- Devexpress 重新编译以后 重新生成DEMO
- [转]阿拉伯数字转一二三和壹贰叁
- 7-20上午刷题未知点集合
- python规则框架_Pytest框架【2】:用例规则
- Qt通过ODBC读取excel文件
- sql语法,未完待续
- 下一代AirPods可能就可以监测你的健康状况了
- Android 4.0 ICS SystemUI浅析——SystemUI启动流程
- python 安装setuptools时报Compression requires the (missing) zlib module错误的解决方案
- MFC 文档 视图 框架窗口间的关系 和消息传送规律
- 人工智能ai算法_AI算法比您想象的要脆弱得多
- c语言怎么编程简易计算器,可编程简易计算器(代码)
- Vue3+Vite快速搭建vue项目
- 毕业后拉开大家差距的原因
- php怎么黑admin管理员密码是什么,tplink管理员密码是什么?
- 三十一、利用微信搜索抓取公众号文章
- 马云重构阿里:或分拆成30家公司 整合3家上市
- 茶道茶文化PPT模板
- 博弈论 纳什均衡 囚徒困境 智猪博弈
- C# 中使用TCP连接设置超时问题