import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;
/**
* @author jiangjy
* @version 1.0
* @date 2023/8/9 22:24
* @description: 日期工具类
*/
public class CommonDateTimeUtils {
/**
* 年月日
*/
public final static String YYYY_MM_DD = "yyyy-MM-dd";
/**
* 日期格式化字符串 年月日时分
*/
public final static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
/**
* 日期格式化字符串 年月日时分秒
*/
public final static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
/**
* 获取指定日期所在月 的第一天或者最后一天
*
* @param date
* @param isFirst
* @return
*/
public static String getFirstOrLastDate(LocalDate date, Boolean isFirst) {
LocalDateTime firstDayOfMonth = LocalDateTime.of(LocalDate.from(date.with(TemporalAdjusters.firstDayOfMonth())), LocalTime.MIN);
LocalDateTime lastDayOfMonth = LocalDateTime.of(LocalDate.from(date.with(TemporalAdjusters.lastDayOfMonth())), LocalTime.MAX);
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return df.format(isFirst ? firstDayOfMonth : lastDayOfMonth);
}
/**
* LocalDate 转化为 Date
*
* @param localDate
* @return
*/
public static Date getLocalDateToDate(LocalDate localDate) {
Instant instant = localDate.atTime(LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
return Date.from(instant);
}
/**
* Date转化为 LocalDate
*
* @param date
* @return
*/
public static LocalDate getDateToLocalDate(Date date) {
Instant instant = date.toInstant();
ZoneId zoneId = ZoneId.systemDefault();
return instant.atZone(zoneId).toLocalDate();
}
/**
* Date 转化指定格式字符串
*
* @param date
* @return
*/
public static String getDateToStr(Date date, String dateFormatStr) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormatStr);
return simpleDateFormat.format(date);
}
/**
* LocalDate 转化为 指定格式字符串
*
* @param localDate
* @return
*/
public static String getLocalDateToStr(LocalDate localDate, String dateFormatStr) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(dateFormatStr);
return dtf.format(localDate);
}
/**
* String 转化为 LocalDate
*
* @param dateStr
* @return
*/
public static LocalDate getStrToLocalDate(String dateStr) {
var firstStr = dateStr.split(" ");
dateStr = firstStr[0];
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return LocalDate.parse(dateStr, fmt);
}
public static Date getStrToDate(String dateStr) {
return getLocalDateToDate(getStrToLocalDate(dateStr));
}
}
CommonDateTimeUtils
最新推荐文章于 2024-05-20 10:24:40 发布