package com.other.helper;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具类:<br />
* @author Jackie
* @since 2015-09-08
* @version 1.0.0
*/
public class DateHelp {
/**
* 求x小时后(前)的时间
* @param date 时间
* @param hour 小时(+为小时后,-为小时前)
* @return 计算后的时间
*/
public static Date addHours(Date date,int hour){
Calendar cal= Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR_OF_DAY, hour);
return cal.getTime();
}
/**
* 求x天后(前)的时间
* @param date 时间
* @param day 天(+为x天后,-为x天前)
* @return 计算后的时间
*/
public static Date addDays(Date date,int day){
Calendar cal= Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, day);
return cal.getTime();
}
/**
* 求x月后(前)的时间
* @param date 时间
* @param month 月(+为x月后,-为x月前)
* @return 计算后的时间
*/
public static Date addMonths(Date date,int month){
Calendar cal= Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, month);
return cal.getTime();
}
/**
* 字符串转换成Date类型
*
* @param date 时间字符串
* @param type 时间格式
* @return
*/
public static Date stringToDate(String date, String type){
SimpleDateFormat sdf = new SimpleDateFormat(type);
Date newdate = new Date();
try {
newdate = sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return newdate;
}
/**
* Date类型转换成字符串
*
* @param date 时间
* @param type 时间格式
* @return
*/
public static String dateToString(Date date, String type){
if(date == null){
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat(type);
String dateString = sdf.format(date);
return dateString;
}
/**
* 计算两个日期之间相差的时间(x天x时)
* @param date1 小
* @param date2 大
* @return
*/
public static String hoursBetween(Date date1,Date date2){
if(date1 == null){
date1 = new Date();
}
if(date2 == null){
date2 = new Date();
}
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
long time1 = cal.getTimeInMillis();
cal.setTime(date2);
long time2 = cal.getTimeInMillis();
long between_hours = (time2-time1)/(1000*60*60);
return between_hours/24+"天"+(between_hours-(between_hours/24)*24)+"时";
}
/**
* 目标时间与当前时间相比 是否已过期
* @param date 目标时间
* @return true已过期/false未过期
*/
public static boolean expired(Date date){
if(date == null){
return false;
}
return ((new Date()).getTime()-date.getTime()) > 0 ? true:false;
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具类:<br />
* @author Jackie
* @since 2015-09-08
* @version 1.0.0
*/
public class DateHelp {
/**
* 求x小时后(前)的时间
* @param date 时间
* @param hour 小时(+为小时后,-为小时前)
* @return 计算后的时间
*/
public static Date addHours(Date date,int hour){
Calendar cal= Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR_OF_DAY, hour);
return cal.getTime();
}
/**
* 求x天后(前)的时间
* @param date 时间
* @param day 天(+为x天后,-为x天前)
* @return 计算后的时间
*/
public static Date addDays(Date date,int day){
Calendar cal= Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DATE, day);
return cal.getTime();
}
/**
* 求x月后(前)的时间
* @param date 时间
* @param month 月(+为x月后,-为x月前)
* @return 计算后的时间
*/
public static Date addMonths(Date date,int month){
Calendar cal= Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, month);
return cal.getTime();
}
/**
* 字符串转换成Date类型
*
* @param date 时间字符串
* @param type 时间格式
* @return
*/
public static Date stringToDate(String date, String type){
SimpleDateFormat sdf = new SimpleDateFormat(type);
Date newdate = new Date();
try {
newdate = sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return newdate;
}
/**
* Date类型转换成字符串
*
* @param date 时间
* @param type 时间格式
* @return
*/
public static String dateToString(Date date, String type){
if(date == null){
return null;
}
SimpleDateFormat sdf = new SimpleDateFormat(type);
String dateString = sdf.format(date);
return dateString;
}
/**
* 计算两个日期之间相差的时间(x天x时)
* @param date1 小
* @param date2 大
* @return
*/
public static String hoursBetween(Date date1,Date date2){
if(date1 == null){
date1 = new Date();
}
if(date2 == null){
date2 = new Date();
}
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
long time1 = cal.getTimeInMillis();
cal.setTime(date2);
long time2 = cal.getTimeInMillis();
long between_hours = (time2-time1)/(1000*60*60);
return between_hours/24+"天"+(between_hours-(between_hours/24)*24)+"时";
}
/**
* 目标时间与当前时间相比 是否已过期
* @param date 目标时间
* @return true已过期/false未过期
*/
public static boolean expired(Date date){
if(date == null){
return false;
}
return ((new Date()).getTime()-date.getTime()) > 0 ? true:false;
}
}