package com.ycl.controller.video.common.util;
|
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.GregorianCalendar;
|
|
|
public class DateUtils {
|
|
/**
|
* 获取两日期之间间隔的天数
|
*
|
* @param smdate
|
* 较小的时间
|
* @param bdate
|
* 较大的时间
|
* @return 相差天数
|
*/
|
public static int daysBetween(Date smdate, Date bdate) {
|
long between_days = 0;
|
try {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
smdate = sdf.parse(sdf.format(smdate));
|
bdate = sdf.parse(sdf.format(bdate));
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(smdate);
|
long time1 = cal.getTimeInMillis();
|
cal.setTime(bdate);
|
long time2 = cal.getTimeInMillis();
|
between_days = (time2 - time1) / (1000 * 3600 * 24);
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
|
return Integer.parseInt(String.valueOf(between_days));
|
}
|
|
public static boolean isBetween(Date date, Date startDate, Date endDate) {
|
|
try {
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
startDate = sdf.parse(sdf.format(startDate));
|
endDate = sdf.parse(sdf.format(endDate));
|
date = sdf.parse(sdf.format(date));
|
|
Calendar cal = Calendar.getInstance();
|
|
cal.setTime(date);
|
long time0 = cal.getTimeInMillis();
|
cal.setTime(startDate);
|
long time1 = cal.getTimeInMillis();
|
cal.setTime(endDate);
|
long time2 = cal.getTimeInMillis();
|
|
if (time0 > time1 && time0 <= time2)
|
return true;
|
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
return false;
|
|
}
|
|
public static boolean isToday(Date date) {
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
String _date = sdf.format(date);
|
String _today = sdf.format(new Date());
|
|
return _date.equals(_today);
|
}
|
|
public static long DifferMillis(Date sDate, Date eDate) {
|
try {
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
sDate = sdf.parse(sdf.format(sDate));
|
eDate = sdf.parse(sdf.format(eDate));
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(sDate);
|
long time1 = cal.getTimeInMillis();
|
cal.setTime(eDate);
|
long time2 = cal.getTimeInMillis();
|
return Math.abs(time1 - time2);
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
|
return -1L;
|
}
|
|
public static long DifferSeconds(Date sDate, Date eDate) {
|
|
return DifferMillis(sDate, eDate) / 1000;
|
}
|
|
/**
|
* 相差分钟数
|
*
|
* @param sDate
|
* @param eDate
|
* @return
|
*/
|
public static long DifferMinutes(Date sDate, Date eDate) {
|
|
return Long.parseLong(String.valueOf(DifferMillis(sDate, eDate)
|
/ (1000 * 60)));
|
}
|
|
public static String getNowDate(String format) {
|
return new SimpleDateFormat(format).format(new Date());
|
}
|
|
public static String getTomorrowDate(String format) {
|
return new SimpleDateFormat(format).format(addDate(new Date(), 1));
|
}
|
|
public static String getDateString(Date date, String format) {
|
return new SimpleDateFormat(format).format(date);
|
}
|
|
public static String getNow() {
|
return getDateString(new Date(), DateUtils.DATE_TIME_PATTERN);
|
}
|
public static Date parse(String date, String format) {
|
|
try {
|
return new SimpleDateFormat(format).parse(date);
|
} catch (ParseException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
public static boolean nowTimeBetween(String beginTimeStr, String endTimeStr)
|
throws ParseException {
|
SimpleDateFormat dateFormat = new SimpleDateFormat("hh:mm:ss");
|
Long beginTime = dateFormat.parse(beginTimeStr).getTime();
|
Long endTime = dateFormat.parse(endTimeStr).getTime();
|
Long nowTime = dateFormat.parse(dateFormat.format(new Date()))
|
.getTime();
|
if (nowTime >= beginTime && nowTime <= endTime) {
|
return true;
|
}
|
return false;
|
}
|
|
@SuppressWarnings("static-access")
|
public static Date addDate(Date date, int days) {
|
Calendar calendar = new GregorianCalendar();
|
calendar.setTime(date);
|
calendar.add(calendar.DATE, days);// 把日期往后增加一天.整数往后推,负数往前移动
|
return calendar.getTime(); // 这个时间就是日期往后推一天的结果
|
}
|
|
@SuppressWarnings("static-access")
|
public static Date addHour(Date date, int hour) {
|
Calendar calendar = new GregorianCalendar();
|
calendar.setTime(date);
|
calendar.add(calendar.HOUR, hour);// 把日期往后增加一天.整数往后推,负数往前移动
|
return calendar.getTime(); // 这个时间就是日期往后推一天的结果
|
}
|
|
@SuppressWarnings("static-access")
|
public static Date addMinute(Date date, int minute) {
|
Calendar calendar = new GregorianCalendar();
|
calendar.setTime(date);
|
calendar.add(calendar.MINUTE, minute);// 把日期往后增加一天.整数往后推,负数往前移动
|
return calendar.getTime(); // 这个时间就是日期往后推一天的结果
|
}
|
|
@SuppressWarnings("static-access")
|
public static Date addSecond(Date date, int second) {
|
Calendar calendar = new GregorianCalendar();
|
calendar.setTime(date);
|
calendar.add(calendar.SECOND, second);// 把日期往后增加一天.整数往后推,负数往前移动
|
return calendar.getTime(); // 这个时间就是日期往后推一天的结果
|
}
|
|
/**
|
*
|
* @param timestamp
|
* 秒
|
* @return
|
*/
|
public static Date getDate(String timestamp) {
|
return getDateBySecond(Long.parseLong(timestamp)); // 这个时间就是日期往后推一天的结果
|
}
|
|
/**
|
*
|
* @param timestamp
|
* 毫秒
|
* @return
|
*/
|
public static Date getDateByMillis(long timestamp) {
|
Calendar calendar = new GregorianCalendar();
|
calendar.setTimeInMillis(timestamp);
|
return calendar.getTime(); // 这个时间就是日期往后推一天的结果
|
}
|
|
/**
|
*
|
* @param timestamp
|
* 秒
|
* @return
|
*/
|
public static Date getDateBySecond(long timestamp) {
|
return getDateByMillis(timestamp * 1000); // 这个时间就是日期往后推一天的结果
|
}
|
|
public static long getTimestamp(Date date) {
|
Calendar calendar = new GregorianCalendar();
|
calendar.setTime(date);
|
return calendar.getTimeInMillis(); // 这个时间就是日期往后推一天的结果
|
}
|
|
public static long DifferMillis(String timestamp, String nowTimestamp) {
|
Date date1 = parse(timestamp, DATE_TIME_PATTERN);
|
Date date2 = parse(nowTimestamp, DATE_TIME_PATTERN);
|
|
return DifferMillis(date1, date2);
|
}
|
|
public static long DifferMillis(String timestamp, Date date) {
|
Date date1 = parse(timestamp, DATE_TIME_PATTERN);
|
|
return DifferMillis(date1, date);
|
}
|
public static String dateToStamp(String s) throws ParseException{
|
String res;
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
Date date = simpleDateFormat.parse(s);
|
long ts = date.getTime();
|
res = String.valueOf(ts);
|
return res;
|
}
|
public static void main(String[] args) throws ParseException {
|
System.out.println(DateUtils.getDateString(new Date(), "yyyy-MM-dd HH:mm:ss"));
|
}
|
|
|
public static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
|
}
|