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.pswp.cn/diannao/14144.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/14144.shtml
英文地址,請注明出處:http://en.pswp.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…