package com.ld.igds.util;
|
|
import java.util.Calendar;
|
import java.util.Date;
|
|
import org.apache.commons.lang3.time.DateUtils;
|
|
/**
|
* 时间相关工具类
|
*
|
* @author jiazx
|
*/
|
public class DateUtil {
|
|
|
/**
|
* 根据当前时间获取只有 yyyy-MM-dd的时间
|
*
|
* @param date
|
* @return
|
*/
|
public static Date getCurZero(Date date) {
|
//TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
|
date = DateUtils.setHours(date, 0);
|
date = DateUtils.setMinutes(date, 0);
|
date = DateUtils.setSeconds(date, 0);
|
date = DateUtils.setMilliseconds(date, 0);
|
return date;
|
}
|
|
/**
|
* 获取当前时间下一天的零点零分零秒
|
*
|
* @param date
|
* @return
|
*/
|
public static Date getNextZero(Date date) {
|
//TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
|
date = DateUtils.addDays(date, 1);
|
date = DateUtils.setHours(date, 0);
|
date = DateUtils.setMinutes(date, 0);
|
date = DateUtils.setSeconds(date, 0);
|
date = DateUtils.setMilliseconds(date, 0);
|
return date;
|
}
|
|
|
/**
|
* 获取当前日期所在月的第一天,数据为::00:00:00
|
*
|
* @param date
|
* @return
|
*/
|
public static Date getMonthFirst(Date date) {
|
if (null == date) date = new Date();
|
date = DateUtils.setDays(date, 1);
|
date = DateUtils.setHours(date, 0);
|
date = DateUtils.setMinutes(date, 0);
|
date = DateUtils.setSeconds(date, 0);
|
date = DateUtils.setMilliseconds(date, 0);
|
return date;
|
}
|
|
/**
|
* 获取当前年第一天
|
*
|
* @param date
|
* @return
|
*/
|
public static Date getYearFirst(Date date) {
|
if (null == date) date = new Date();
|
Calendar currCal = Calendar.getInstance();
|
currCal.setTime(date);
|
int currentYear = currCal.get(Calendar.YEAR);
|
|
Calendar calendar = Calendar.getInstance();
|
calendar.clear();
|
calendar.set(Calendar.YEAR, currentYear);
|
Date currYearFirst = calendar.getTime();
|
return currYearFirst;
|
}
|
|
/**
|
* 获取当前时间的下个月1号
|
*
|
* @param date
|
* @return
|
*/
|
public static Date getNextMonthFirst(Date date) {
|
if (null == date) date = new Date();
|
date = DateUtils.addMonths(date, 1);
|
date = DateUtils.setDays(date, 1);
|
date = DateUtils.setHours(date, 0);
|
date = DateUtils.setMinutes(date, 0);
|
date = DateUtils.setSeconds(date, 0);
|
date = DateUtils.setMilliseconds(date, 0);
|
return date;
|
}
|
|
/**
|
* 获取当前时间的上个月1号
|
*
|
* @param date
|
* @return
|
*/
|
public static Date getPreMonthFirst(Date date) {
|
if (null == date) date = new Date();
|
date = DateUtils.addMonths(date, -1);
|
date = DateUtils.setDays(date, 1);
|
date = DateUtils.setHours(date, 0);
|
date = DateUtils.setMinutes(date, 0);
|
date = DateUtils.setSeconds(date, 0);
|
date = DateUtils.setMilliseconds(date, 0);
|
return date;
|
}
|
|
/**
|
* 时间,根据天数 添加几天,或者减去几天
|
*
|
* @param date 当前时间
|
* @param num 正数或者负数
|
* @return
|
*/
|
public static Date getNewByDay(Date date, int num) {
|
if (null == date) date = new Date();
|
date = DateUtils.addDays(date, num);
|
date = DateUtils.setHours(date, 0);
|
date = DateUtils.setMinutes(date, 0);
|
date = DateUtils.setSeconds(date, 0);
|
date = DateUtils.setMilliseconds(date, 0);
|
return date;
|
}
|
|
/**
|
* 时间,根据天数 添加几分钟,或者减去几分
|
*
|
* @param date 当前时间
|
* @param num 正数或者负数
|
* @return
|
*/
|
public static Date getNewByMinute(Date date, int num) {
|
if (null == date) date = new Date();
|
date = DateUtils.addMinutes(date, num);
|
return date;
|
}
|
|
/**
|
* 获取某年第一天日期
|
*
|
* @param year 年份
|
* @return Date
|
*/
|
public static Date getCurrYearFirst(int year) {
|
Calendar calendar = Calendar.getInstance();
|
calendar.clear();
|
calendar.set(Calendar.YEAR, year);
|
Date currYearFirst = calendar.getTime();
|
return currYearFirst;
|
}
|
|
/**
|
* 获取次年第一天 0点
|
*
|
* @param year 年份
|
* @return Date
|
*/
|
public static Date getNextYearFirst(int year) {
|
Calendar calendar = Calendar.getInstance();
|
calendar.clear();
|
calendar.set(Calendar.YEAR, year);
|
calendar.roll(Calendar.DAY_OF_YEAR, -1);
|
|
Date currYearLast = calendar.getTime();
|
|
currYearLast = DateUtils.addDays(currYearLast, 1);
|
|
return currYearLast;
|
}
|
|
|
/**
|
* 计算时间1与时间2直接的分钟数,
|
*
|
* @param begin
|
* @param end
|
* @return
|
*/
|
public static long difMin(Date begin, Date end) {
|
long between = (end.getTime() - begin.getTime()) / 1000;//除以1000是为了转换成秒
|
//long day1 = between / (24 * 3600);
|
// long hour1 = between % (24 * 3600) / 3600;
|
long minute1 = between % 3600 / 60;
|
// long second1 = between % 60 / 60;
|
return minute1;
|
}
|
|
/**
|
* 计算时间1与时间2直接的天数,
|
*
|
* @param begin
|
* @param end
|
* @return
|
*/
|
public static long difDay(Date begin, Date end) {
|
int days = (int) ((end.getTime() - begin.getTime()) / (1000 * 3600 * 24));
|
return days;
|
}
|
|
|
/**
|
* 获取当前时间的 小时,时间从1-24
|
*
|
* @param date
|
* @return
|
*/
|
public static int getHour(Date date) {
|
Calendar calendar = Calendar.getInstance();
|
calendar.setTime(date);
|
return calendar.get(Calendar.HOUR_OF_DAY);
|
}
|
|
/**
|
* 获取当前时间的 分钟 时间从0 -59
|
*
|
* @param date
|
* @return
|
*/
|
public static int getMinute(Date date) {
|
Calendar calendar = Calendar.getInstance();
|
calendar.setTime(date);
|
return calendar.get(Calendar.MINUTE);
|
}
|
|
/**
|
* 获取当前时间到第二天凌晨的时间差秒数
|
*
|
* @return
|
*/
|
public static Long getNowToNextDaySeconds() {
|
Calendar cal = Calendar.getInstance();
|
cal.add(Calendar.DAY_OF_YEAR, 1);
|
cal.set(Calendar.HOUR_OF_DAY, 0);
|
cal.set(Calendar.SECOND, 0);
|
cal.set(Calendar.MINUTE, 0);
|
cal.set(Calendar.MILLISECOND, 0);
|
return (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
|
}
|
|
|
public static void main(String[] args) {
|
System.out.println(getMinute(new Date()));
|
}
|
}
|