import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
public static final String YYYYMMDDHHMMSS = "yyyy-MM-dd HH:mm:ss";
/**
* <P>Description: 在指定日期增加指定天数</P>
*
* @param date 日期
* @param days 天数
**/
public static Date addDay(Date date, int days) {
if (days == 0) {
return date;
}
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DAY_OF_YEAR, days);
return c.getTime();
}
/**
* <P>Description: 获取当前String时间 </P>
*
**/
public static String getNow() {
SimpleDateFormat df = new SimpleDateFormat(YYYYMMDDHHMMSS);
return df.format(new Date());
}
/**
* <P>Description: 计算两个时间的分钟间隔</P>
*
* @param c 起始时间
* @param e 结束时间
**/
public static long getMinuteInterval(String c, String e) throws ParseException {
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//转换为Date类
Long timestamp_c=format.parse(c).getTime();
Long timestamp_e=format.parse(e).getTime();
long min = (timestamp_e - timestamp_c) / 1000 / 60;
return min;
}
/**
* <P>Description: 计算两个时间的秒间隔</P>
*
* @param c 起始时间
* @param e 结束时间
**/
public static long getSecondBetween(Date c, Date e) throws ParseException {
Calendar start = Calendar.getInstance();
start.setTime(c);
Calendar end = Calendar.getInstance();
end.setTime(e);
int secondCount =
(int) ((end.getTimeInMillis() - start.getTimeInMillis() + 60 * 1000) / 60 / 1000) - 1;
return secondCount;
}
/**
* <P>Description: 获取时间戳</P>
*
* @param t String类型时间
**/
public static long getTimeStamp(String t) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYYMMDDHHMMSS);
Date date = simpleDateFormat.parse(t);
return date.getTime();
}
/**
*
* <P>Description: 获取时间戳</P>
**/
public static long getTimeStamp() {
return Calendar.getInstance().getTimeInMillis();
}
/**
*
* <P>Description: 计算两个时间戳差值</P>
*
* @param c
* @param e
**/
public static long getTimeStampBetween(long c, long e) {
return e - c;
}
/**
* <P>Description: 格式化时间:将日期字符串转成要求格式的日期</P>
*
* @param dateStr 日期字符串
* @param pattern 格式
**/
public static Date formatStringToDate(String dateStr, String pattern) {
SimpleDateFormat df = new SimpleDateFormat(pattern);
try {
return df.parse(dateStr);
} catch (ParseException e) {
}
return null;
}
/**
* <P>Description: 计算两个时间的间隔</P>
*
* @param c 起始时间
* @param e 结束时间
* @param item 类型
**/
private static Long getInterval(String c, String e, String item) throws ParseException {
SimpleDateFormat df = new SimpleDateFormat(YYYYMMDDHHMMSS);
Date createT = df.parse(c);
Date endT = df.parse(e);
long l = endT.getTime() - createT.getTime();
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);
if ("day".equals(item)) {
return day;
} else if ("hour".equals(item)) {
return hour;
} else if ("min".equals(item)) {
return min;
} else if ("s".equals(item)) {
return s;
} else {
return l;
}
}
/**
* <P>Description: 判断时间是否大于现在 </P>
*
* @param time 要比较的时间 格式 yyyy-MM-dd HH:mm:ss
* @return boolean true指定时间大于现在时间 false指定时间小于现在时间
**/
public static boolean timeCompare(String time) {
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(YYYYMMDDHHMMSS);
LocalTime localTime = LocalTime.parse(time, dtf);
return LocalTime.now().isAfter(localTime);
}
/**
*
* <P>Description: Date类型 转换成任意格式的 String类型</P>
*
* @param date 时间
* @param format 格式
**/
public static String dateTransString(Date date, String format) {
SimpleDateFormat formatter = new SimpleDateFormat(format);
return formatter.format(date);
}
}
DateUtil 时间处理工具
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1、后台获取商品详情接口: 在上一篇文章所新建的ProudctManageController类中新建下面方法:*...
- 1. 说明: 工作中经常用到java日期类型Date、Calendar或SimpleDateFormat,但是这些...
- 项目里经常要遇到日期时间处理,一直都是手写SimpleDateFormat来转换,今天整理了下最基础的几个常用方法...
- 运营在于坚持,我们一起成长 “ 昨天去在行约见了一个行家,请教我的职业生涯规划应该如何往下走更合适。人生总是需要一...