date类型转换成String类型
/**
* 将date转换成String类型
* @param date Date
* @param pattern 日期类型格式 : yyyy-MM-dd 等
* @return
*/
public static String dateToString(Date date, String pattern){
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String dateStr = sdf.format(date);
return dateStr;
}
String类型转换成date类型
/**
* 将String类型转换成date类型
* @param dateStr 日期字符串
* @param pattern 日期类型格式 : yyyy-MM-dd 等
* @return
* @throws ParseException 转换异常
*/
public static Date StringToDate(String dateStr, String pattern) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date date = sdf.parse(dateStr);
return date;
}
获取date前后多少天内的日期
/**
* 获取date前后几天内的日期
* @param date 日期
* @param pattern 日期字符串类型格式 : yyyy-MM-dd 等
* @return
*/
public static String getTime(Date date, String pattern){
Calendar c = new GregorianCalendar();
c.setTime(date);
// 后一天为1, 前一天为 -1
c.add(Calendar.DATE, 1);
date = c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String dateStr = sdf.format(date);
return dateStr;
}
日期的比较
/**
* 方式一: Date 自带的 before、after 方法, 返回的是boolean类型
* @param date1
* @param date2
* @return
* true : date1 比 date2 早
* false: date1 比 date2 晚
*/
public static boolean compareDate(Date date1, Date date2){
if (date1.before(date2)){
return true;
} else {
return false;
}
}
/**
* 方式二: Date实现了Comparable接口,重写的里面的compareTo方法,直接调用compareTo()方法进行比较
* @param date1
* @param date2
* @return 返回值为 int 类型:date1 < date2 返回-1
* date1 = date2 返回0
* date1 > date2 返回1
*/
public static int compareToDate(Date date1, Date date2){
int result = date1.compareTo(date2);
return result;
}
/**
* 方式三: 将时间转换成毫秒数来进行比较
* @param date1
* @param date2
* @return date1 比 date2 早,返回false
* date1 比 date2 晚,返回true
*/
public static boolean compareDateFrom(Date date1, Date date2){
long date1Time = date1.getTime();
long date2Time = date2.getTime();
boolean result = date1Time > date2Time;
return result;
}
计算时间差
/**
* 计算时间差 : 10个小时
*/
public boolean countTimt(Date date1, Date date2){
Long diff = date2.getTime() - date1.getTime();
long days = diff / (1000 * 60 * 60 * 24);
long hours = (diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
long result = days * 24 + hours;
if (result >= 10){
return true;
}else {
return false;
}
}
/**
* 时间比较,date1是否比date晚90天
*/
private boolean compareTime(Date date, Date date1) {
long beginMillisecond = date.getTime();
long endMillisecond = date1.getTime();
long t = endMillisecond - beginMillisecond;
// 三个月时间的毫秒数
long t1 = 7776000000L;
//Date类的一个方法,如果a早于b返回true,否则返回false
if (t > t1) {
return true;
} else {
return false;
}
}
执行结果:
public static void main(String[] args) throws ParseException {
Date date = new Date();
String pattern = "yyyy-MM-dd";
String pattern1 = "yyyy-MM-dd HH:mm:ss";
String pattern2 = "yyyy年MM月dd日 HH:mm:ss";
String pattern3 = "yyyyMMddHHmmss";
String str = dateToString(date, pattern);
System.out.println(str); // 2019-11-07
Date date1 = StringToDate(str, pattern);
System.out.println(date1); // Thu Nov 07 00:00:00 GMT+08:00 2019
str = dateToString(date, pattern1);
System.out.println(str); // 2019-11-07 16:47:50
date1 = StringToDate(str, pattern1);
System.out.println(date1); // Thu Nov 07 16:47:50 GMT+08:00 2019
str = dateToString(date, pattern2);
System.out.println(str); // 2019年11月07日 16:47:50
date1 = StringToDate(str, pattern2);
System.out.println(date1); // Thu Nov 07 16:47:50 GMT+08:00 2019
str = dateToString(date, pattern3);
System.out.println(str); // 20191107164750
date1 = StringToDate(str, pattern3);
System.out.println(date1); // Thu Nov 07 16:47:50 GMT+08:00 2019
String strring = getTime(date, pattern);
System.out.println(strring); // 2019-11-08
Date date2 = new Date();
boolean res = compareDate(date1, date2);
System.out.println(res); // true
}
网友评论