Java日期Date和LocalDateTime的工具类

Date

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

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.mzph.cn/diannao/14144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel 公式积累

1.获取当前位置的左侧单元格 引用当前单元格左侧的第一个单元格:OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),0,-1) ROW()返回当前单元格的行号,COLUMN()返回当前单元格的列号。 ADDRESS函数可以根据指定行号和列号获得工作表中的某个单元格的地址。例如…

go全部版本下载目录

linux安装教程: Download and install - The Go Programming Language rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.3.linux-amd64.tar.gzexport PATH$PATH:/usr/local/go/bin go version 全部版本下载目录: All releases - Th…

鸿蒙本机通信

demo地址 https://github.com/MartinLi89/WanHarmony 目前只学到一部分,不正确的地方,还望大家指正,我会及时更新,谢谢,欢迎评论留言 线程内通信,线程间通信,进程间通信 本篇帖子中描述的比较宽…

快速开发 Chrome插件

什么是 Chrome 插件 Chrome 插件程序是一种用于增强 Google Chrome 浏览器功能的小型软件应用程序。它们可以帮助用户自定义浏览体验、添加新功能、集成外部服务以及自动化任务等。扩展程序使用 HTML、CSS 和 JavaScript 编写,利用 Chrome 提供的 API 来与浏览器及…

18.分布式监控zabbix-proxy

zabbix proxy 使用场景: 监控远程区域设备监控本地网络不稳定区域当 zabbix 监控上千设备时,使用它来减轻 server 的压力简化分布式监控的维护 环境规划: zabbix-server:外网IP地址192.168.111.66 zabbix-proxy:外网IP地址192.168.111.11 内网IP地址…

AI工具推荐:提升工作效率与生活质量

有哪些好用,且国内可用的AI工具? 副本 在AI大发展的年代,还有人在工作、生活中没有使用过AI吗? 今天为大家推荐几款国内可用、好用的AI工具,不论是自媒体文案写作、打工人汇报PPT、还是论文、公文写作,总…

设计系统采购与安装:乙级资质申请的技术准备

在设计系统采购与安装方面,为乙级资质申请所做的技术准备涉及多个方面。以下是一些关键的技术准备事项: 明确技术需求:首先,需要明确乙级资质申请所需的技术系统类型和规格。这可能包括但不限于设计软件、工程管理系统、项目管理系…

【Linux】之【Get√】查看linux CPU 架构 ---- amd64、x86、x86_64、arm64

关于Linux软件下载时:amd64、x86、x86_64、arm64 的说明 archuanme -alscpu

【设计模式深度剖析】【2】【创建型】【工厂方法模式】

👈️上一篇:单例模式 | 下一篇:抽象工厂模式👉️ 目录 工厂方法模式概览工厂方法模式的定义英文原话直译 工厂方法模式的4个角色抽象工厂(Creator)角色具体工厂(Concrete Creator)角色抽象产品&#x…

关于光照模型

关于光照模型 早期学习笔记,转载自早期Excel。 存在大量格式错误、可读性非常低,建议等待作者修复后阅读、或者作为查找性材料使用。 中文名英文名/缩写说明长什么样兰伯特光照模型Lambert Lighting1.兰伯特反射(Lambert)是最常见的一种漫反射&#x…

iptables防火墙【其二 实验篇】

保存&#xff0c;还原规则 防火墙规则的备份和还原 导出&#xff08;备份&#xff09;所有表的规则 iptables-save > /opt/ipt.txt 导入&#xff08;还原&#xff09;规则 iptables-restore < /opt/ipt.txt 将iptables规则文件保存在 /etc/sysconfig/iptables 中&#xf…

亚马逊卖家账号注册复杂吗?需要什么辅助工具吗?

在当今数字化的商业世界中&#xff0c;亚马逊作为全球最大的电商平台之一&#xff0c;吸引着无数的卖家和买家。对于想要进入亚马逊销售市场的卖家来说&#xff0c;首先要完成的一项重要任务就是注册亚马逊卖家账号。本文将详细介绍亚马逊注册的步骤、所需时间&#xff0c;以及…

LIMS系统能解决实验室管理的哪些痛点

LIMS&#xff08;Laboratory Information Management System&#xff0c;实验室信息管理系统&#xff09;在解决实验室管理的痛点方面发挥着重要作用。以下是LIMS系统能够解决的一些主要痛点&#xff1a; 一、人工介入大量重复性工作 LIMS系统能够自动化处理实验室中的许多重复…

[深度学习]基于yolov8+bytetrack+pyqt5实现车辆进出流量统计+车辆实时测速实现

以前使用过yolov5deepsort实现过车辆进出流量统计车辆实时测速&#xff0c;可以看我往期视频&#xff0c;这回改成yolov8bytetrack实现&#xff0c;实时性更好&#xff0c;原理和原来一样。车流量进出统计车速测量优点&#xff1a; 使用目标检测算法考虑bbox抖动&#xff0c;解…

C-数据结构-单向链表(带头节点)

单向链表带头节点&#xff08;head&#xff09;&#xff08;数据域&#xff0c;指针域&#xff09; 随机访问性比较差 但是插入删除操作较为简单。 list.h #ifndef LIST_H__ #define LIST_H__typedef int datatype;typedef struct node_st {datatype data;struct node_st *ne…

将富文本编辑器中的H标签处理成树形结构,支持无限层级

做富文本编辑器时&#xff0c;需要将文本里的标题整理成树形数据&#xff0c; // 这里是数据结构 const data [{"id": "hkyrq2ndc-36yttda0lme00","text": "阿萨德阿萨德阿萨","level": 1,"depth": 1,},{"…

Window Linux 权限提升

#基础点&#xff1a; 0、为什么我们要学习权限提升转移技术&#xff1a; 简单来说就是达到目的过程中需要用到它 心里要想着我是谁 我在哪 我要去哪里 1、具体有哪些权限需要我们了解掌握的&#xff1a; 后台权限&#xff0c;数据库权限&#xff0c;Web权限&#xff0c;用户权…

【VTKExamples::Texture】第六期 TextureThreshold

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例TextureThreshold,并解析接口vtkTexture,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~Y…

127.数据异构方案

文章目录 前言一、数据异构的常用方法1. 完整克隆2. MQ方式3. binlog方式 二、MQ与Binlog方案实现MQ方式binlog方式注意点 三、总结 前言 何谓数据异构&#xff1a;把数据按需&#xff08;数据结构、存取方式、存取形式&#xff09;异地构建存储。比如我们将DB里面的数据持久化…

Android 安全补丁介绍

Android 安全补丁介绍 每月安全补丁更新&#xff1a;https://source.android.com/docs/security/bulletin CEV 全称&#xff1a; Common Vulnerabilities and Exposures (CVE) 常见漏洞和暴露 (CVE) 安全补丁版本查看&#xff1a;设置&#xff0c;关于手机&#xff0c;Andro…