/**
* 对时间处理的函数
*
* @author zhangyuepeng
*
*/
public class ProcessingTime {
/**
* 获取当天时间的零点
*
* @param date
* @return
*/
public Date getStartTimeOfDay(Date date) {
if (date == null) {
return null;
}
Calendar day = Calendar.getInstance();
day.setTime(date);
day.set(Calendar.HOUR_OF_DAY, 0);
day.set(Calendar.MINUTE, 0);
day.set(Calendar.SECOND, 0);
day.set(Calendar.MILLISECOND, 0);
return day.getTime();
}
/**
* 获取当天时间的末点
*
* @param date
* @return
*/
public Date getEndTimeOfDay(Date date) {
if (date == null) {
return null;
}
Calendar day = Calendar.getInstance();
day.setTime(date);
day.set(Calendar.HOUR_OF_DAY, 23);
day.set(Calendar.MINUTE, 59);
day.set(Calendar.SECOND, 59);
day.set(Calendar.MILLISECOND, 999);
return day.getTime();
}
/**
* 获取昨天时间的零点
*
* @param date
* @return
*/
public Date getLastDayStartTimeOfDay(Date date) {
if (date == null) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// calendar.add(Calendar.DAY_OF_MONTH, +1);//明天
// calendar.add(Calendar.DAY_OF_MONTH, 0);//今天
calendar.add(Calendar.DAY_OF_MONTH, -1);// 昨天
return getStartTimeOfDay(calendar.getTime());
}
/**
* 获取一周前时间的零点
*
* @param date
* @return
*/
public Date getLastDayEndTimeOfSevenDay(Date date) {
if (date == null) {
return null;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// calendar.add(Calendar.DAY_OF_MONTH, +1);//明天
// calendar.add(Calendar.DAY_OF_MONTH, 0);//今天
calendar.add(Calendar.DATE, -7);// 一周前
return getStartTimeOfDay(calendar.getTime());
}
/**
* 将时间格式进行转换 (yyyy-MM-dd HH:mm:ss)
*
* @param date
* @return
*/
public String dateFormat(Date date) {
// 创建一个Date对象,获取当前时间
// 指定格式化格式
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return f.format(date);
}
/**
* 给时间加上几个小时
* @param day 当前时间 格式:yyyy-MM-dd HH:mm:ss
* @param hour 需要加的时间
* @return
*/
public String addDateMinut(String day, int hour){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(day);
} catch (Exception ex) {
ex.printStackTrace();
}
if (date == null)
return "";
// System.out.println("front:" + format.format(date)); //显示输入的日期
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR, hour);// 24小时制
date = cal.getTime();
//System.out.println("after:" + format.format(date)); //显示更新后的日期
cal = null;
return format.format(date);
}
/**
* 时间计算函数(第一个时间减去第二个时间) 传参格式("yyyy-MM-dd HH:mm:ss")
* 第一个参数传最近的时间,第二个参数传递过去的时间
* @param bigTime
* @param smallTime
* @return 返回一个List{天,小时,分钟}
*/
public List<Long> getTime(String bigTime, String smallTime){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<Long> timeList=new ArrayList<Long>();
try
{
Date d1 = df.parse(bigTime);
Date d2 = df.parse(smallTime);
long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别
long days = diff / (1000 * 60 * 60 * 24);
long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
// System.out.println(""+days+"天"+hours+"小时"+minutes+"分");
timeList.add(days);
timeList.add(hours);
timeList.add(minutes);
}catch (Exception e)
{
}
return timeList;
}
/**
* 获取到当月的第一天零时
* ("yyyy-MM-dd HH:mm:ss")
* @return String
*/
public String firstDayOfThisMonth(Date date){
DateFormat df = new SimpleDateFormat("yyyy-MM");
String dates=df.format(date);
String t="-01 00:00:00";
dates=dates+t;
return dates;
}
网友评论