Java日期Date和LocalDateTime的工具类

2024-05-24 04:20

本文主要是介绍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);}}

这篇关于Java日期Date和LocalDateTime的工具类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/997354

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte