Java日期Date和LocalDateTime的工具类

ops/2024/10/16 4:29:48/

Date

java">package com.qiangesoft.utils.date;import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;/*** 日期工具类** @author lq* @date 2024-05-23*/
public class DateUtil {public static final String[] CHINESE_WEEK_DAY = new String[]{"周日", "周一", "周二", "周三", "周四", "周五", "周六"};/*** 当前时间** @return*/public static Date now() {return new Date();}/*** 当日的开始时间** @return*/public static Date startOfDay() {return startOfDay(now());}/*** 某天的开始时间** @param date* @return*/public static Date startOfDay(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/*** 当日的结束时间** @return*/public static Date endOfDay() {return endOfDay(now());}/*** 某天的结束时间** @param date* @return*/public static Date endOfDay(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);calendar.set(Calendar.MILLISECOND, 999);return calendar.getTime();}/*** 当日星期几** @return*/public static int dayOfWeek() {return dayOfWeek(now());}/*** 获取星期几** @param date* @return*/public static int dayOfWeek(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);return calendar.get(Calendar.DAY_OF_WEEK);}/*** 当月开始时间** @return*/public static Date startOfMonth() {return startOfMonth(now());}/*** 当月开始时间** @return*/public static Date startOfMonth(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_MONTH, 1);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);return calendar.getTime();}/*** 当月结束时间** @return*/public static Date endOfMonth() {return endOfMonth(now());}/*** 当月结束时间** @return*/public static Date endOfMonth(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));calendar.set(Calendar.HOUR_OF_DAY, 23);calendar.set(Calendar.MINUTE, 59);calendar.set(Calendar.SECOND, 59);calendar.set(Calendar.MILLISECOND, 999);return calendar.getTime();}/*** 当日是否属于时间范围内** @param startTime* @param endTime* @return*/public static Boolean between(Date startTime, Date endTime) {return between(now(), startTime, endTime);}/*** 时间范围内** @param date* @param startTime* @param endTime* @return*/public static Boolean between(Date date, Date startTime, Date endTime) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);Calendar start = Calendar.getInstance();start.setTime(startTime);Calendar end = Calendar.getInstance();end.setTime(endTime);return calendar.after(start) && calendar.before(end);}/*** 时间格式化** @param date* @param format* @return*/public static String format(Date date, String format) {SimpleDateFormat dateFormat = new SimpleDateFormat(format);return dateFormat.format(date);}/*** 增加秒** @param date* @param second* @return*/public static Date addSecond(Date date, int second) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.SECOND, second);return calendar.getTime();}/*** 增加分钟** @param date* @param minute* @return*/public static Date addMinute(Date date, int minute) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MINUTE, minute);return calendar.getTime();}/*** 增加小时** @param date* @param hour* @return*/public static Date addHour(Date date, int hour) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.HOUR, hour);return calendar.getTime();}/*** 增加天** @param date* @param day* @return*/public static Date addDay(Date date, int day) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.DATE, day);return calendar.getTime();}/*** 增加周** @param date* @param week* @return*/public static Date addWeek(Date date, int week) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.DAY_OF_WEEK, week);return calendar.getTime();}/*** 增加月** @param date* @param month* @return*/public static Date addMonth(Date date, int month) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MONTH, month);return calendar.getTime();}/*** 增加年** @param date* @param year* @return*/public static Date addYear(Date date, int year) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.YEAR, year);return calendar.getTime();}/*** 减少秒** @param date* @param second* @return*/public static Date reduceSecond(Date date, int second) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.roll(Calendar.SECOND, second);return calendar.getTime();}/*** 减少分钟** @param date* @param minute* @return*/public static Date reduceMinute(Date date, int minute) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.roll(Calendar.MINUTE, minute);return calendar.getTime();}/*** 减少小时** @param date* @param hour* @return*/public static Date reduceHour(Date date, int hour) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.roll(Calendar.HOUR, hour);return calendar.getTime();}/*** 减少天** @param date* @param day* @return*/public static Date reduceDay(Date date, int day) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.roll(Calendar.DATE, day);return calendar.getTime();}/*** 减少周** @param date* @param week* @return*/public static Date reduceWeek(Date date, int week) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.roll(Calendar.DAY_OF_WEEK, week);return calendar.getTime();}/*** 减少月** @param date* @param month* @return*/public static Date reduceMonth(Date date, int month) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.roll(Calendar.MONTH, month);return calendar.getTime();}/*** 减少年** @param date* @param year* @return*/public static Date reduceYear(Date date, int year) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.roll(Calendar.YEAR, year);return calendar.getTime();}}

LocalDateTime

java">package com.qiangesoft.utils.date;import java.time.DayOfWeek;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;/*** 日期工具类** @author lq* @date 2024-05-23*/
public class LocalDateUtil {public static final String[] CHINESE_WEEK_DAY = new String[]{"周日", "周一", "周二", "周三", "周四", "周五", "周六"};/*** 当前时间** @return*/public static LocalDateTime now() {return LocalDateTime.now();}/*** 当日的开始时间** @return*/public static LocalDateTime startOfDay() {return now().toLocalDate().atStartOfDay();}/*** 某天的开始时间** @param date* @return*/public static LocalDateTime startOfDay(LocalDateTime date) {return date.toLocalDate().atStartOfDay();}/*** 当日的结束时间** @return*/public static LocalDateTime endOfDay() {return now().toLocalDate().atTime(LocalTime.MAX);}/*** 某天的结束时间** @param date* @return*/public static LocalDateTime endOfDay(LocalDateTime date) {return date.toLocalDate().atTime(LocalTime.MAX);}/*** 当日星期几** @return*/public static int dayOfWeek() {return dayOfWeek(now());}/*** 获取星期几** @param date* @return*/public static int dayOfWeek(LocalDateTime date) {DayOfWeek dayOfWeek = date.getDayOfWeek();return dayOfWeek.getValue();}/*** 当月开始时间** @return*/public static LocalDateTime startOfMonth() {return startOfMonth(now());}/*** 当月开始时间** @return*/public static LocalDateTime startOfMonth(LocalDateTime date) {return date.toLocalDate().withDayOfMonth(1).atStartOfDay();}/*** 当月结束时间** @return*/public static LocalDateTime endOfMonth() {return endOfMonth(now());}/*** 当月结束时间** @return*/public static LocalDateTime endOfMonth(LocalDateTime date) {return date.toLocalDate().with(TemporalAdjusters.lastDayOfMonth()).atTime(LocalTime.MAX);}/*** 当日是否属于时间范围内** @param startTime* @param endTime* @return*/public static Boolean between(LocalDateTime startTime, LocalDateTime endTime) {return between(now(), startTime, endTime);}/*** 时间范围内** @param date* @param startTime* @param endTime* @return*/public static Boolean between(LocalDateTime date, LocalDateTime startTime, LocalDateTime endTime) {return date.isAfter(startTime) && date.isBefore(endTime);}/*** 时间格式化** @param date* @param format* @return*/public static String format(LocalDateTime date, String format) {DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);return date.format(formatter);}/*** 增加秒** @param date* @param second* @return*/public static LocalDateTime addSecond(LocalDateTime date, int second) {return date.plusSeconds(second);}/*** 增加分钟** @param date* @param minute* @return*/public static LocalDateTime addMinute(LocalDateTime date, int minute) {return date.plusMinutes(minute);}/*** 增加小时** @param date* @param hour* @return*/public static LocalDateTime addHour(LocalDateTime date, int hour) {return date.plusHours(hour);}/*** 增加天** @param date* @param day* @return*/public static LocalDateTime addDay(LocalDateTime date, int day) {return date.plusDays(day);}/*** 增加周** @param date* @param week* @return*/public static LocalDateTime addWeek(LocalDateTime date, int week) {return date.plusWeeks(week);}/*** 增加月** @param date* @param month* @return*/public static LocalDateTime addMonth(LocalDateTime date, int month) {return date.plusMonths(month);}/*** 增加年** @param date* @param year* @return*/public static LocalDateTime addYear(LocalDateTime date, int year) {return date.plusYears(year);}/*** 减少秒** @param date* @param second* @return*/public static LocalDateTime reduceSecond(LocalDateTime date, int second) {return date.minusSeconds(second);}/*** 减少分钟** @param date* @param minute* @return*/public static LocalDateTime reduceMinute(LocalDateTime date, int minute) {return date.minusMinutes(minute);}/*** 减少小时** @param date* @param hour* @return*/public static LocalDateTime reduceHour(LocalDateTime date, int hour) {return date.minusHours(hour);}/*** 减少天** @param date* @param day* @return*/public static LocalDateTime reduceDay(LocalDateTime date, int day) {return date.minusDays(day);}/*** 减少周** @param date* @param week* @return*/public static LocalDateTime reduceWeek(LocalDateTime date, int week) {return date.minusWeeks(week);}/*** 减少月** @param date* @param month* @return*/public static LocalDateTime reduceMonth(LocalDateTime date, int month) {return date.minusMonths(month);}/*** 减少年** @param date* @param year* @return*/public static LocalDateTime reduceYear(LocalDateTime date, int year) {return date.minusYears(year);}}

http://www.ppmy.cn/ops/42284.html

相关文章

循环队列的实现

循环队列的意思就是用限定的内存空间来完成队列相关操作。在结构上是循环的,在物理上可以是链表或者是数组 那么我们首先从数组来实现循环队列: 数组型 数组的内存不是环形的,所以我们需要用到%来实现下标的循环。 那么循环队列里面最重要…

如何在go项目中实现发送邮箱验证码、邮箱+验证码登录

前期准备 GoLand :2024.1.1 下载官网:https://www.jetbrains.com/zh-cn/go/download/other.html Postman: 下载官网:https://www.postman.com/downloads/ 效果图(使用Postman) Google: QQ: And …

sql server使用 SELECT INTO 进行数据表备份和创建临时中间表

在数据库操作中,常常需要将数据从一个表复制到另一个表,或将部分数据保存到一个新的表中进行进一步操作。SELECT INTO 是一个强大的 SQL 语句,可以在 SQL Server 和部分其他数据库系统中实现这一功能。本文将讨论如何使用 SELECT INTO 进行数…

卷积神经网络(CNN)详细介绍及其原理详解

卷积神经网络(Convolutional Neural Networks,简称CNN)是深度学习中非常重要的一类神经网络,主要用于图像识别、图像分类、物体检测等计算机视觉任务。本文将详细介绍卷积神经网络的基本概念、结构组成及其工作原理,并…

深度学习之基于Tensorflow的卷积神经网络手写数字识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 手写数字识别是计算机视觉和模式识别领域的一个重要问题。传统的识别方法往往依赖于复杂的特征工程和…

溪谷联运SDK功能全面解析

近期,备受用户关注的手游联运10.0.0版本上线了,不少用户也选择了版本更新,其中也再次迎来了SDK的更新。溪谷软件和大家一起盘点一下溪谷SDK的功能都有哪些吧。 一、溪谷SDK具有完整的运营功能和高度扩展性 1.登录:登录是SDK最基础…

网关路由SpringCloudGateway、nacos配置管理(热更新、动态路由)

文章目录 前言一、网关路由二、SpringCloudGateway1. 路由过滤2. 网关登录校验2.1 鉴权2.2 网关过滤器2.3 登录校验2.3.1 JWT2.3.2 登录校验过滤器 3. 微服务从网关获取用户4. 微服务之间用户信息传递 三、nacos配置管理问题引入3.1 配置共享3.1.1 在Nacos中添加共享配置3.1.2 …

Algoriddim djay Pro Ai for Mac:AI引领,混音新篇章

当AI遇上音乐,会碰撞出怎样的火花?Algoriddim djay Pro Ai for Mac给出了答案。这款专业的DJ混音软件,以AI为引擎,引领我们进入混音的新篇章。 djay Pro Ai for Mac的智能混音功能,让每一位DJ都能感受到前所未有的创作…