日常我们都会使用到时间获取,现在就总结出一套java的时间获取器
package xxx
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
public static Date dayZeroClock(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
public static Date weekZeroClock(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
public static Date afterDays(Date date, int numOfDays) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_YEAR, numOfDays);
return cal.getTime();
}
public static Date afterHours(Date date, int numOfHours) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR_OF_DAY, numOfHours);
return cal.getTime();
}
public static Date monthZeroClock(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
public static Date afterMonths(Date date, int numOfMonths) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.MONTH, numOfMonths);
return cal.getTime();
}
public static Date currentDayZeroClock() {
return dayZeroClock(new Date());
}
public static Date currentWeekZeroClock() {
return weekZeroClock(new Date());
}
public static Date currentMonthZeroClock() {
return monthZeroClock(new Date());
}
public static Date parse(String format, String date) throws ParseException {
return new SimpleDateFormat(format).parse(date);
}
}
下面展示常用方法
@Test
public void testDateUtil() {
//获取七天前的时间
Date sevenDayBefore = DateUtil.dayZeroClock(DateUtil.afterDays(new Date(), -7));
//今天早上
Date currentDay = DateUtil.dayZeroClock(new Date());
//两个月前的时间
Date towMonthDayBefore = DateUtil.dayZeroClock(DateUtil.afterMonths(new Date(), -2));
System.out.println(sevenDayBefore.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(sevenDayBefore));
System.out.println(sdf.format(currentDay));
System.out.println(sdf.format(towMonthDayBefore));
}