import org.apache.commons.lang3.StringUtils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
/**
* 取得当月天数
* */
public static int getCurrentMonthLastDay()
{
Calendar a = Calendar.getInstance();
a.set(Calendar.DATE, 1);//把日期设置为当月第一天
a.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天
int maxDate = a.get(Calendar.DATE);
return maxDate;
}
/**
* 得到指定月的天数
* */
public static int getMonthLastDay(int year, int month)
{
Calendar a = Calendar.getInstance();
a.set(Calendar.YEAR, year);
a.set(Calendar.MONTH, month - 1);
a.set(Calendar.DATE, 1);//把日期设置为当月第一天
a.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天
int maxDate = a.get(Calendar.DATE);
return maxDate;
}
/**
* 功能说明:得到昨天的日期
* @param date
* @return
*/
public static Date getYesterday(Date date){
Date yesDate = new Date(date.getTime() - 24*60*60*1000);
return yesDate;
}
/**
* 功能说明:得到N天前的日期
* @param date
* @param day 往前推的天数
* @return
*/
public static Date getOldDayByNum(Date date, Long day){
Date yesDate = new Date(date.getTime() - day*24*60*60*1000);
return yesDate;
}
/**
* 功能说明:得到当前日期字符串
* @param format 日期格式,默认"yyyy-MM-dd HH:mm:ss"
* @return
*/
public static String getNowDateString(String format){
if(StringUtils.isEmpty(format)){
format = "yyyy-MM-dd HH:mm:ss";
}
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
/**
* 功能说明:按给定的日期转字符串
* @param date 给定的日期
* @param format 日期格式,默认"yyyy-MM-dd HH:mm:ss"
* @return
*/
public static String getDateString(Date date, String format){
if(StringUtils.isEmpty(format)){
format = "yyyy-MM-dd HH:mm:ss";
}
if(date == null){
return "";
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
}
/**
* 功能说明:字符串转Date
* @param dateStr 日期字符串
* @param format 日期格式,默认"yyyy-MM-dd HH:mm:ss"
* @return
*/
public static Date DateFormatString(String dateStr, String format){
if(StringUtils.isEmpty(format)){
format = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date date;
try {
date = sdf.parse(dateStr);
} catch (Exception e) {
date = new Date();
}
return date;
}
/**
* 将时间转换为 yyyy-mm-dd 00:00:00/yyyy-mm-dd 23:59:59
* @param originTime 日期字符串 yyyy-mm-dd
* @param type 日期类型 0是添加开始时间后缀 1添加结束时间后缀
*/
public static Date transferSelectedTime(Date originTime, int type){
String t1 = DateUtil.getDateString(originTime,"yyyy-MM-dd");
if(type==0){
t1+=" 00:00:00";
}else if(type==1){
t1+=" 23:59:59";
}
Date result = DateUtil.DateFormatString(t1,"yyyy-MM-dd HH:mm:ss");
return result;
}
/**
* 将时间转换为 yyyy-mm-dd 00:00:00/yyyy-mm-dd 23:59:59
* @param originTime 日期字符串 yyyy-mm-dd
* @param type 日期类型 0是添加开始时间后缀 1添加结束时间后缀
*/
public static String transferSelectedTimeString(Date originTime, int type){
String t1 = DateUtil.getDateString(originTime,"yyyy-MM-dd");
if(type==0){
t1+=" 00:00:00";
}else if(type==1){
t1+=" 23:59:59";
}
return t1;
}
public static String getDateDiffStringNostyle(Date date1, Date date2){
StringBuffer sb = new StringBuffer();
long l = date2.getTime()-date1.getTime();
if (l < 0){
sb.append("0天0小时0分0秒");
return sb.toString();
}
long day = l/(24*60*60*1000);
long hour = (l/(60*60*1000)-day*24);
long min = ((l/(60*1000))-day*24*60-hour*60);
long s = (l/1000-day*24*60*60-hour*60*60-min*60);
sb.append(day).append("天").append(hour).append("小时")
.append(min).append("分").append(s).append("秒");
return sb.toString();
}
public static String getDateDiffString(Date date1, Date date2){
StringBuffer sb = new StringBuffer();
long l = date2.getTime()-date1.getTime();
String s1 = "<font style=\"font-size: 14px;\" color=\"red\">";
String s2 = "</font>";
if (l < 0){
sb.append(s1).append(0).append(s2).append("天")
.append(s1).append(0).append(s2).append("小时")
.append(s1).append(0).append(s2).append("分")
.append(s1).append(0).append(s2).append("秒");
return sb.toString();
}
long day = l/(24*60*60*1000);
long hour = (l/(60*60*1000)-day*24);
long min = ((l/(60*1000))-day*24*60-hour*60);
long s = (l/1000-day*24*60*60-hour*60*60-min*60);
sb.append(s1).append(day).append(s2).append("天")
.append(s1).append(hour).append(s2).append("小时")
.append(s1).append(min).append(s2).append("分")
.append(s1).append(s).append(s2).append("秒");
return sb.toString();
}
public static String getDateDiffString(Date date1, Object obj){
StringBuffer sb = new StringBuffer();
Date date2 = null;
String s1 = "<font style=\"font-size: 14px;\" color=\"red\">";
String s2 = "</font>";
try{
date2 = (Date) obj;
}catch(Exception e){
sb.append(s1).append(0).append(s2).append("天")
.append(s1).append(0).append(s2).append("小时")
.append(s1).append(0).append(s2).append("分")
.append(s1).append(0).append(s2).append("秒");
return sb.toString();
}
long l = date2.getTime()-date1.getTime();
if (l < 0){
sb.append(s1).append(0).append(s2).append("天")
.append(s1).append(0).append(s2).append("小时")
.append(s1).append(0).append(s2).append("分")
.append(s1).append(0).append(s2).append("秒");
return sb.toString();
}
long day = l/(24*60*60*1000);
long hour = (l/(60*60*1000)-day*24);
long min = ((l/(60*1000))-day*24*60-hour*60);
long s = (l/1000-day*24*60*60-hour*60*60-min*60);
sb.append(s1).append(day).append(s2).append("天")
.append(s1).append(hour).append(s2).append("小时")
.append(s1).append(min).append(s2).append("分")
.append(s1).append(s).append(s2).append("秒");
return sb.toString();
}
public static String getDateDiffString2(Date date2){
Date date1 = new Date();
StringBuffer sb = new StringBuffer();
long l = date2.getTime()-date1.getTime();
String s1 = "<font style=\"font-size: 14px;\" color=\"red\">";
String s2 = "</font>";
if (l < 0){
sb.append(s1).append(0).append(s2).append("天")
.append(s1).append(0).append(s2).append("小时")
.append(s1).append(0).append(s2).append("分")
.append(s1).append(0).append(s2).append("秒");
return sb.toString();
}
long day = l/(24*60*60*1000);
long hour = (l/(60*60*1000)-day*24);
long min = ((l/(60*1000))-day*24*60-hour*60);
long s = (l/1000-day*24*60*60-hour*60*60-min*60);
sb.append(s1).append(day).append(s2).append("天")
.append(s1).append(hour).append(s2).append("小时")
.append(s1).append(min).append(s2).append("分")
.append(s1).append(s).append(s2).append("秒");
return sb.toString();
}
public static Date addDay(Date date, int dayNo){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, dayNo);
return calendar.getTime();
}
/**
* 转换时间并将时间转换为 yyyy-mm-dd 00:00:00/yyyy-mm-dd 23:59:59
*/
public static Date transferStartOrEndTime(Date date,int amout,int type){
Date start = DateUtils.round(DateUtils.addDays(date, amout), Calendar.DATE);
Date startOrEndTime = DateUtil.transferSelectedTime(start,type);
return startOrEndTime;
}
}
DateUtil
最新推荐文章于 2023-04-12 18:35:00 发布