public class DateUtils {
/**
* 一秒的毫秒数
*/
public static final Long ONE_SECOND = 1000L;
/**
* 一分钟的毫秒数
*/
public static final Long ONE_MINUNTE = ONE_SECOND * 60;
/**
* 一小时的毫秒数
*/
public static final Long ONE_HOUR = ONE_MINUNTE * 60;
/**
* 一天的毫秒数
*/
public static final Long ONE_DAY = ONE_HOUR * 24;
/**
* 一周的毫秒数
*/
public static final Long ONE_WEEK = ONE_DAY * 7;
public static String YYYY = "yyyy";
public static String YYYY_MM = "yyyy-MM";
public static String YYYY_MM_DD = "yyyy-MM-dd";
public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
public static String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
public static String YYYY_MM_DD_T_HH_MM_SS_Z = "yyyy-MM-dd'T'HH:mm:ss.S'Z'";
/**
* 获取当前时间戳
* @return
*/
public static Long getCurrTime(){
return System.currentTimeMillis();
}
/**
* 返回yyyy-MM-dd HH:mm:ss格式的前时间
* @return
*/
public static String getCurrFormatDate(){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
return simpleDateFormat.format(new Date());
}
/**
* 返回pattern格式的当前时间
* @return
*/
public static String getCurrFormatDate(String pattern){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
return simpleDateFormat.format(new Date());
}
/**
* 时间格式转换成yyyy-MM-dd hh:mm:ss格式
* @param date
* @return
*/
public static String format(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
return sdf.format(date);
}
/**
* 将指定格式的时间字符串转为Date
* @param dateStr
* @param pattren
* @return
* @throws ParseException
*/
public static Date formatStrDate(String dateStr, String pattren) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(pattren);
return sdf.parse(dateStr);
}
/**
* 返回日期的年份
* @param str 日期
* @param pattern 格式
* @return
* @throws ParseException
*/
public static int getYear(String str, String pattern) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date parse = sdf.parse(str);
Calendar calendar = Calendar.getInstance();
calendar.setTime(parse);
return calendar.get(Calendar.YEAR);
}
/**
* 获取当前时间的年份
* @return
*/
public static int getCurrYear() {
Calendar calendar = Calendar.getInstance();
return calendar.get(Calendar.YEAR);
}
/**
* 两相同格式时间字符串的时间差
* @param str1
* @param str2
* @param pattern
* @return
* @throws ParseException
*/
public static Long deltatTDateStr(String str1, String str2, String pattern) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat(pattern);
return deltatTDate(format.parse(str1), format.parse(str2));
}
/**
* 时间差
* @param d1
* @param d2
* @return
*/
public static Long deltatTDate(Date d1, Date d2) {
return deltatT(d1.getTime(), d2.getTime());
}
/**
* 两时间戳差值
* @param t1
* @param t2
* @return
*/
public static Long deltatT(Long t1, Long t2) {
return t1 - t2;
}
/**
* 获取某年某月的总天数
* @param year
* @param month
* @return
*/
public static int getDayCountOfMonth(int year,int month) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1);
// 获取某月的最大天数
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
/**
* 获取上一个月的总天数
* @return
*/
public static int getDayCountByLastMonth(){
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
return getDayCountOfMonth(year, month);
}
/**
* 某月的最后一天
* @param year
* @param month
* @return
*/
public synchronized static String getLastDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
int actualMaximum = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, actualMaximum);
SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
return format.format(cal.getTime()) + " 23:59:59";
}
/**
* 某月的第一天
* @param year
* @param month
* @return
*/
public synchronized static String getFirstDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, actualMinimum);
SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
return format.format(cal.getTime()) + " 00:00:00";
}
/**
* 上个月的开始时间日期
* @return
*/
public synchronized static String getFirstDayOfPastMonth() {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
return getFirstDayOfMonth(year, month - 1);
}
/**
* 上月的结束时间日期
* @return
*/
public synchronized static String getLastDayOfPastMonth() {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
return getLastDayOfMonth(year, month - 1);
}
/**
* 过去一天的日期
* @return
*/
public synchronized static String getPastDay(){
Calendar instance = Calendar.getInstance();
int day = instance.get(Calendar.DAY_OF_MONTH) - 1;
instance.set(Calendar.DAY_OF_MONTH, day);
SimpleDateFormat format = new SimpleDateFormat(YYYY_MM_DD);
return format.format(instance.getTime());
}
// 三天前
Date now = new Date();
Date begin = DateUtils.addDays(now, -3);
}
java最常用到的时间工具类
于 2022-01-05 17:46:53 首次发布