手动封装一个日期处理工具类,几乎覆盖了所有的时间操作(收藏)

news/2024/11/28 6:47:18/

工具类包含以下方法:

  • - stringToDate: 将字符串转换为java.util.Date类型
  • - dateToString: 将java.util.Date类型转换为字符串
  • - stringToLocalDateTime: 将字符串转换为LocalDateTime类型
  • - localDateTimeToString: 将LocalDateTime类型转换为字符串
  • - dateToLocalDateTime: 将java.util.Date类型转换为LocalDateTime类型
  • - localDateTimeToDate: 将LocalDateTime类型转换为java.util.Date类型
  • - addDate: 在java.util.Date类型日期上增加或减少指定时间
  • - addLocalDateTime: 在LocalDateTime类型日期上增加或减少指定时间

废话就不说了,直接上代码,建议收藏,实用的话帮忙点个赞!

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;public class DateUtil {/*** 将字符串转换为java.util.Date类型** @param strDate 日期字符串* @param format  日期格式* @return java.util.Date类型日期* @throws ParseException 解析异常*/public static Date stringToDate(String strDate, String format) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat(format);return sdf.parse(strDate);}/*** 将java.util.Date类型转换为字符串** @param date   java.util.Date类型日期* @param format 日期格式* @return 日期字符串*/public static String dateToString(Date date, String format) {SimpleDateFormat sdf = new SimpleDateFormat(format);return sdf.format(date);}/*** 将字符串转换为LocalDateTime类型** @param strDate 日期字符串* @param format  日期格式* @return LocalDateTime类型日期*/public static LocalDateTime stringToLocalDateTime(String strDate, String format) {DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);return LocalDateTime.parse(strDate, formatter);}/*** 将LocalDateTime类型转换为字符串** @param localDateTime LocalDateTime类型日期* @param format        日期格式* @return 日期字符串*/public static String localDateTimeToString(LocalDateTime localDateTime, String format) {DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);return localDateTime.format(formatter);}/*** 将java.util.Date类型转换为LocalDateTime类型** @param date java.util.Date类型日期* @return LocalDateTime类型日期*/public static LocalDateTime dateToLocalDateTime(Date date) {return LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());}/*** 将LocalDateTime类型转换为java.util.Date类型** @param localDateTime LocalDateTime类型日期* @return java.util.Date类型日期*/public static Date localDateTimeToDate(LocalDateTime localDateTime) {return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());}/*** 在java.util.Date类型日期上增加或减少指定时间** @param date   java.util.Date类型日期* @param field  时间类型,如Calendar.MINUTE,Calendar.HOUR,Calendar.DATE等* @param amount 增加或减少的时间数值* @return 增加或减少后的java.util.Date类型日期*/public static Date addDate(Date date, int field, int amount) {java.util.Calendar cal = java.util.Calendar.getInstance();cal.setTime(date);cal.add(field, amount);return cal.getTime();}/*** 在LocalDateTime类型日期上增加或减少指定时间** @param localDateTime LocalDateTime类型日期* @param field         时间类型,如ChronoUnit.MINUTES,ChronoUnit.HOURS,ChronoUnit.DAYS等* @param amount        增加或减少* @return 增加或减少后的LocalDateTime类型日期*/
public static LocalDateTime addLocalDateTime(LocalDateTime localDateTime, int field, int amount) {switch (field) {case java.time.temporal.ChronoUnit.SECONDS:return localDateTime.plusSeconds(amount);case java.time.temporal.ChronoUnit.MINUTES:return localDateTime.plusMinutes(amount);case java.time.temporal.ChronoUnit.HOURS:return localDateTime.plusHours(amount);case java.time.temporal.ChronoUnit.DAYS:return localDateTime.plusDays(amount);case java.time.temporal.ChronoUnit.WEEKS:return localDateTime.plusWeeks(amount);case java.time.temporal.ChronoUnit.MONTHS:return localDateTime.plusMonths(amount);case java.time.temporal.ChronoUnit.YEARS:return localDateTime.plusYears(amount);default:throw new IllegalArgumentException("无效时间类型");}
}
}

以下是使用该工具类的示例代码:

import java.util.Date;
import java.time.LocalDateTime;public class TestDateTimeUtils {public static void main(String[] args) {// 将字符串转换为Date类型Date date = DateTimeUtils.stringToDate("2023-04-27 14:23:30", "yyyy-MM-dd HH:mm:ss");System.out.println(date);// 将Date类型转换为字符串String dateString = DateTimeUtils.dateToString(date, "yyyy-MM-dd HH:mm:ss");System.out.println(dateString);// 将字符串转换为LocalDateTime类型LocalDateTime localDateTime = DateTimeUtils.stringToLocalDateTime("2023-04-27 14:23:30", "yyyy-MM-dd HH:mm:ss");System.out.println(localDateTime);// 将LocalDateTime类型转换为字符串String localDateTimeString = DateTimeUtils.localDateTimeToString(localDateTime, "yyyy-MM-dd HH:mm:ss");System.out.println(localDateTimeString);// 将Date类型转换为LocalDateTime类型LocalDateTime localDateTime2 = DateTimeUtils.dateToLocalDateTime(date);System.out.println(localDateTime2);// 将LocalDateTime类型转换为Date类型Date date2 = DateTimeUtils.localDateTimeToDate(localDateTime2);System.out.println(date2);// 在Date类型日期上增加或减少指定时间Date date3 = DateTimeUtils.addDate(date, java.util.Calendar.DATE, 1);System.out.println(date3);// 在LocalDateTime类型日期上增加或减少指定时间LocalDateTime localDateTime3 = DateTimeUtils.addLocalDateTime(localDateTime, java.time.temporal.ChronoUnit.DAYS, 1);System.out.println(localDateTime3);}
}

由于当前日期是2023-04-27,因此以下是上面示例代码的输出结果:

 


http://www.ppmy.cn/news/61831.html

相关文章

Apache Doris学习记录

1. Doris基础学习 中文官网:https://doris.apache.org/zh-CN/docs/dev/summary/basic-summary/ 1.1 doris 简介 Apache Doris 是一个现代化的 MPP(Massively Parallel Processing,即大规模并行处理) 分析型数据库产品 亚秒级响应时间即可获得查询结果 可以支持 10PB…

【嵌入式环境下linux内核及驱动学习笔记-(9-内核定时器)】

目录 1、时钟tick中断等概念2、延时机制2.1 短延时(忙等待类--非阻塞害)2.1.1 ndelay 忙等待延迟多少纳秒2.1.2 udelay 忙等待延迟多少微秒2.1.3 mdelay 忙等待延迟多少毫秒 2.2 长延迟:忙等待 (非阻塞类)2.2.1 time_a…

ChatGPT :国内免费可用 ChatGPT +Midjourney绘图

前言 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序 ,于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来…

UFC718AE01 HIEE300936R0101什么是 ABB 分布式控制系统?

​ UFC718AE01 HIEE300936R0101什么是 ABB 分布式控制系统? 关于 ABB 类别 什么是 ABB 分布式控制系统? ABB 的分布式控制系统 (DCS) 旨在改变多方面、全天候 24 小时的工业流程。ABB 的控制架构持续分析和推动工厂生产力,最大限度地提高资产…

HTMLCSS

1、HTML 1.1 介绍 HTML 是一门语言,所有的网页都是用HTML 这门语言编写出来的,也就是HTML是用来写网页的,像京东,12306等网站有很多网页。 这些都是网页展示出来的效果。而HTML也有专业的解释 HTML(HyperText Markup Language)…

java版本工程项目管理系统平台源码,助力工程企业实现数字化管理

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展,企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,公司对内部工程管…

信息安全等级保护的基本概念,信息安全等级划分,等级保护测评,实施流程,所需材料

信息安全等级保护的基本概念 信息安全等级保护是国家信息安全保障的基本制度 网络安全等级保护是指对网络(含信息系统、数据)实施分等级保护、分等级监管。 信息系统安全等级测评是验证信息系统是否满足相应安全保护等级的评估过程。信息安全等级保护…

【自然语言处理 | Transformer】Transformer:Attention is All You Need论文讲解

Transformer由论文《Attention is All You Need》提出: 论文地址为: https://arxiv.org/pdf/1706.03762.pdf文章目录 一、Transformer 整体结构二、Transformer 的输入2.1 单词 Embedding2.2 位置 Embedding 三、Self-Attention(自注意力机制…