Files
dzpt-server/src/main/java/com/saye/hgddmz/commons/date/DateDUtil.java
2025-09-15 18:52:59 +08:00

297 lines
7.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.saye.hgddmz.commons.date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateDUtil {
public static String yyyy_MM_dd = "yyyy-MM-dd";
public static String yyyyMMdd = "yyyyMMdd";
public static String yyyyMM = "yyyyMM";
public static String yyyy_MM = "yyyy-MM";
public static String yyyy_MM_dd_HH_00 = "yyyy-MM-dd HH:00";
public static String yyyy_MM_dd_HH_mm = "yyyy-MM-dd HH:mm";
public static String yyyy_MM_dd_HH_mm_ss = "yyyy-MM-dd HH:mm:ss";
public static String yyyy_MM_dd_HH_mm_ss_SS = "yyyy-MM-dd HH:mm:ss.SS";
public static String yyyyMMddHHmm = "yyyyMMddHHmm";
public static String yyyyMMddHHmmss = "yyyyMMddHHmmss";
public static String yyyyMMddHHmmssSS = "yyyyMMddHHmmssSS";
public static String yyMMdd = "yyMMdd";
public static String yyyy_MM_dd_00_00 = "yyyy-MM-dd 00:00";
/**
* 将字符串时间改成Date类型
* @param format
* @param dateStr
* @return
*/
public static Date strToDate(String format,String dateStr) {
Date date = null;
try {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
date = simpleDateFormat.parse(dateStr);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* 将Date时间转成字符串
* @param format
* @param date
* @return
*/
public static String DateToStr(String format,Date date){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
return simpleDateFormat.format(date);
}
/**
* 获取2个字符日期的天数差
* @param p_startDate
* @param p_endDate
* @return 天数差
*/
public static long getDaysOfTowDiffDate( String p_startDate, String p_endDate ){
Date l_startDate = DateDUtil.strToDate(DateDUtil.yyyy_MM_dd, p_startDate);
Date l_endDate = DateDUtil.strToDate(DateDUtil.yyyy_MM_dd, p_endDate);
long l_startTime = l_startDate.getTime();
long l_endTime = l_endDate.getTime();
long betweenDays = (long) ( ( l_endTime - l_startTime ) / ( 1000 * 60 * 60 * 24 ) );
return betweenDays;
}
/**
* 获取2个字符日期的天数差
* @param l_startDate
* @param l_endDate
* @return 天数差
*/
public static long getDaysOfTowDiffDate( Date l_startDate, Date l_endDate ){
long l_startTime = l_startDate.getTime();
long l_endTime = l_endDate.getTime();
long betweenDays = (long) ( ( l_endTime - l_startTime ) / ( 1000 * 60 * 60 * 24 ) );
return betweenDays;
}
/**
* 给出日期添加一段时间后的日期
* @param dateStr
* @param plus
* @return
*/
public static String getPlusDays(String format,String dateStr,long plus){
Date date = DateDUtil.strToDate(format, dateStr);
long time = date.getTime()+ plus*24*60*60*1000;
return DateDUtil.DateToStr(format,new Date(time));
}
/**
* 给出日期添加一段时间后的日期
* @param format
* @param date
* @param plus
* @return
*/
public static String getPlusDays(String format,Date date,long plus){
long time = date.getTime()+ plus*24*60*60*1000;
return DateDUtil.DateToStr(format,new Date(time));
}
/**
* 给出日期添加一段时间前的日期
* @param format
* @param date
* @param forth
* @return
*/
public static String getForthDays(String format,Date date,long forth){
long time = date.getTime()- forth*24*60*60*1000;
return DateDUtil.DateToStr(format,new Date(time));
}
/**
* 给出时间添加几个小时后的时间
* @param format
* @param dateStr
* @param plus
* @return
*/
public static String getPlusHours(String format,String dateStr,long plus){
Date date = DateDUtil.strToDate(format, dateStr);
long time = date.getTime()+ plus*60*60*1000;
return DateDUtil.DateToStr(format,new Date(time));
}
/**
* 给出时间添加几个分钟后的时间
* @param format
* @param dateStr
* @param plus
* @return
*/
public static String getPlusMinutes(String format,String dateStr,long plus){
Date date = DateDUtil.strToDate(format, dateStr);
long time = date.getTime()+ plus*60*1000;
return DateDUtil.DateToStr(format,new Date(time));
}
/**
* 得到当前时间格式如yyyy-MM-dd HH:mm:ss:SS
* @return
*/
public static String getCurrentTime(){
String nowTime = DateDUtil.DateToStr(DateDUtil.yyyy_MM_dd_HH_mm_ss_SS, new Date());
return nowTime;
}
/**
* 得到当前时间格式如yyyy-MM-dd HH:mm:ss
* @return
*/
public static String getTheCurrentTime(){
String nowTime = DateDUtil.DateToStr(DateDUtil.yyyy_MM_dd_HH_mm_ss, new Date());
return nowTime;
}
/**
* 得到当前日期格式如yyyyMMdd
* @return
*/
public static String getCurrentDate(){
String nowDate = DateDUtil.DateToStr(DateDUtil.yyyyMMdd, new Date());
return nowDate;
}
/**
* 得到当前日期格式如yyyyMMdd
* @return
*/
public static String getCurrentDate(String format){
String nowDate = DateDUtil.DateToStr(format, new Date());
return nowDate;
}
/**
* 获取2个字符日期的分钟数差
* @param p_startDate
* @param p_endDate
* @return 相差的分钟
*/
public static long getMinutesOfTowDiffDate(String p_startDate, String p_endDate ){
Date l_startDate = DateDUtil.strToDate(DateDUtil.yyyy_MM_dd_HH_mm_ss_SS, p_startDate);
Date l_endDate = DateDUtil.strToDate(DateDUtil.yyyy_MM_dd_HH_mm_ss_SS, p_endDate);
long l_startTime = l_startDate.getTime();
long l_endTime = l_endDate.getTime();
long betweenMinutes = (long) ( ( l_endTime - l_startTime ) / ( 1000 * 60) );
return betweenMinutes;
}
/**
* 获取2个字符日期的分钟数差
* @param p_startDate
* @param p_endDate
* @return 相差的分钟
*/
public static long getMinutesOfTowDiffDateMin(String format,String p_startDate, String p_endDate ){
Date l_startDate = DateDUtil.strToDate(format, p_startDate);
Date l_endDate = DateDUtil.strToDate(format, p_endDate);
long l_startTime = l_startDate.getTime();
long l_endTime = l_endDate.getTime();
long betweenMinutes = (long) ( ( l_endTime - l_startTime ) / ( 1000 * 60) );
return betweenMinutes;
}
public static long getMonthIntervalOfTowDiffDate(String p_startMonth, String p_endMonth){
Date l_startDate = DateDUtil.strToDate(DateDUtil.yyyy_MM, p_startMonth);
Date l_endDate = DateDUtil.strToDate(DateDUtil.yyyy_MM, p_endMonth);
Calendar calender = Calendar.getInstance();
calender.setTime(l_startDate);
long l_startMonth = calender.get(Calendar.MONTH)+1;
long l_startYear = calender.get(Calendar.YEAR);
calender.setTime(l_endDate);
long l_endMonth =calender.get(Calendar.MONTH)+1;
long l_endYear = calender.get(Calendar.YEAR);
long betweenYear = l_endYear - l_startYear;
long betweenMonth = (long) ( l_endMonth - l_startMonth ) ;
return betweenYear * 12 + betweenMonth;
}
/**
* 将字符串日期转为cron表达式
*/
public static String getCron(String execute_time) throws Exception{
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(yyyy_MM_dd_HH_mm_ss);
Date date = simpleDateFormat.parse(execute_time);
SimpleDateFormat dateFormat = new SimpleDateFormat("ss mm HH dd MM ? yyyy");
return dateFormat.format(date);
}
/**
* 获取当前年月日日期
*/
public static String getCDate(){
Calendar now = Calendar.getInstance();
String year=now.get(Calendar.YEAR)+"";
String month=(now.get(Calendar.MONTH) + 1) + "";
String day=now.get(Calendar.DAY_OF_MONTH)+"";
if ((now.get(Calendar.MONTH) + 1) < 10) month = "0" + month;
if (now.get(Calendar.DAY_OF_MONTH) < 10) day= "0" + day;
String nowDate = year+""+month+""+day+"";
return nowDate;
}
}