package com.wnn.myweb.utils;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* @ClassName: DateUtil
* @Author: wnn
* @Description: 日期工具类--基于LocalDateTime
* @Date: 2022/8/2 17:14
*/
public class DateUtil {
private static LocalDateTime ldt = LocalDateTime.now();//当前日期
//获取当前日期 格式:yyyy-MM-dd、yyyy-MM-dd HH:mm:ss、yy-MM-dd、yyyyMMdd等
public static String getCurrentDate(String pattern) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
String result = dtf.format(ldt);//格式化日期
return result;
}
//获取当前日期的前n天或后n天 :num>0表现获取以后的日期,num<0表示获取以前的日期;pattern 日期格式
public static String getBeforeOrAfterDays(int num, String pattern) {
LocalDateTime localDateTime = null;
if (num >= 0) {
localDateTime = ldt.plusDays(num);
} else {
localDateTime = ldt.minusDays(Math.abs(num));
}
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
String result = dtf.format(localDateTime);
return result;
}
//获取当前日期的前n月或后n月 :num>0表现获取以后的日期,num<0表示获取以前的日期;pattern 日期格式
public static String getBeforeOrAfterMonths(int num, String pattern) {
LocalDateTime localDateTime = null;
if (num >= 0) {
localDateTime = ldt.plusMonths(num);
} else {
localDateTime = ldt.minusMonths(Math.abs(num));
}
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(pattern);
String result = dtf.format(localDateTime);
return result;
}
//计算两个日期相差多少天 :输入日期格式必须为yyyy-MM-dd
public static long daysDiff(String beforeDate, String afterDate) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate parse1 = LocalDate.parse(beforeDate, dtf);
LocalDate parse2 = LocalDate.parse(afterDate, dtf);
long dayse = parse2.toEpochDay() - parse1.toEpochDay();
return dayse;
}
//获取当前日期是星期几,返回格式为周三
public static String getWhatDay() {
int value = ldt.getDayOfWeek().getValue();
return "星期" + formatDaysOfWeek(value);
}
//获取输入的日期是星期几: 输入日期格式必须为yyyy-MM-dd
public static String getWhatDayInputDate(String date) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate parse = LocalDate.parse(date, dtf);
int value = parse.getDayOfWeek().getValue();
return "星期" + formatDaysOfWeek(value);
}
//格式化周几 将数字转为汉字
public static String formatDaysOfWeek(int value) {
String daysOfWeek = "";
switch (value) {
case 1:
daysOfWeek = "一";
break;
case 2:
daysOfWeek = "二";
break;
case 3:
daysOfWeek = "三";
break;
case 4:
daysOfWeek = "四";
break;
case 5:
daysOfWeek = "五";
break;
case 6:
daysOfWeek = "六";
break;
case 7:
daysOfWeek = "七";
break;
}
return daysOfWeek;
}
}
[JAVA]--基于LocalDateTime编写的日期工具类
猜你喜欢
转载自blog.csdn.net/weixin_44431073/article/details/126157771
今日推荐
周排行