专业的JAVA编程教程与资源

网站首页 > java教程 正文

100个Java工具类之46:日期工具类之常用日期获取

temp10 2024-09-19 04:10:24 java教程 9 ℃ 0 评论

该系列为java工具类系列,主要展示100个常用的java工具类。

本文是此系列的第46篇文章。此文重点讲述:日期工具类之常用日期获取

100个Java工具类之46:日期工具类之常用日期获取

获取日期相关的工具类,相信每个开发者都使用过,本人在项目中经常发现,日期工具类不止一个,但在代码中仍然有很多地方没有使用工具类,而是重复地去编写获取日期的代码。

究其原因,是因为:

1、工具类中没有自己要用的方法;

2、没有备注,命名不规范。

介于以上问题,本人写了一些关于获取日期的方法,可以借鉴使用。


一、获取今天日期

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
//日期类型
Date date = new Date();
输出:Tue Aug 15 16:00:50 CST 2023
//字符串类型
String today = dateFormat.format(date);
输出:20230815

二、获取昨天日期

获取昨/明天日期,获取前/后几天日期,获取前/后几月日期,获取前/后几年日期,都可以根据参数不同,分别获取,原来一样,用法类似。

Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String yesterday = format.format(cal.getTime());
输出:20230814

三、获取今日星期几

Calendar cal = Calendar.getInstance();
int dayWeek = cal.get(Calendar.DAY_OF_WEEK) - 1;
输出:2

四、获取当前周周一的日期

Calendar cal = Calendar.getInstance();
int dayWeek = cal.get(Calendar.DAY_OF_WEEK) -1;
System.out.println(dayWeek);
cal.add(Calendar.DATE, -dayWeek + 1);
String monday = new SimpleDateFormat( "yyyyMMdd").format(cal.getTime());
输出:20230814

五、获取两日期的间隔天数

SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date date1 = format.parse("20230815");
Date date2 = format.parse("20230915");
long day = (date2.getTime() - date1.getTime()) / (24 * 60 * 60 * 1000);
输出:31

六、获取n天以后的日期

int days = 88;
Date date = new Date();
long dateTime = (date.getTime() / 1000) + days * 24 * 60 * 60;
date.setTime(dateTime * 1000);
String tarDate = new SimpleDateFormat("yyyyMMdd").format(date);
输出:20231111

七、获取当前年是闰年还是平年

众所周知:能被4整除而不能被100整除,或者能被400整除的是闰年,否则是平年。我们可以手写代码去判断年份,也可以使用java.time.LocalDate。


LocalDate now = LocalDate.now();
boolean leapYear = now.isLeapYear();
if (leapYear){
  //闰年
} else {
   //平年
}

八、获取n年n月n天之前/后的日期

int beforeDay = 1;
int beforeMonth = 1;
int beforeYear = 1;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_YEAR, cal.get(Calendar.DAY_OF_YEAR) - beforeDay);
cal.add(Calendar.MONTH, -beforeMonth);
cal.add(Calendar.YEAR, -beforeYear);
Date today = cal.getTime();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String tarDay = format.format(today);
输出:20220714

感谢你的阅读,喜欢的话给个赞吧。

这个图我是真不知道咋配~_~

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表