经常需要获取某个日期的开始和结束时间,这里可以提供一个工具类。
/** 文件名: BeginAndEndTimeOfDateUtil.java* 模块说明:* 修改历史:* -8-13 - dongtangqiang - 创建。*/package mon;import mons.lang3.time.DateUtils;import java.util.Calendar;import java.util.Date;/*** 指定日期的开始和结束时间工具类* * @author dongtangqiang*/public class BeginAndEndTimeOfDateUtil {/*** 获取指定日期的开始时间* * @param certainDate*指定日期* @param flex*正负整数,正数表示指定日期的后几天,负数表示指定日期的前几天* @return*/public static Date getStartTime(Date certainDate, int flex) {return DateUtils.truncate(DateUtils.addDays(certainDate, flex), Calendar.DATE);}/*** 获取指定日期的结束时间** @param certainDate*指定日期* @param flex*正负整数,正数表示指定日期的后几天,负数表示指定日期的前几天* @return*/public static Date getEndTime(Date certainDate, int flex) {return DateUtils.addMilliseconds(DateUtils.truncate(DateUtils.addDays(certainDate, flex + 1), Calendar.DATE), -1);}}
测试
/** 文件名: Test.java* 模块说明:* 修改历史:* -8-13 - dongtangqiang - 创建。*/package mon;import java.util.Date;/*** @author dongtangqiang*/public class Test {public static void main(String[] args) {System.out.println("获取今天前1天的开始时间:" + BeginAndEndTimeOfDateUtil.getStartTime(new Date(), -1));System.out.println("获取今天前1天的结束时间:" + BeginAndEndTimeOfDateUtil.getEndTime(new Date(), -1));System.out.println("获取今天的开始时间:" + BeginAndEndTimeOfDateUtil.getStartTime(new Date(), 0));System.out.println("获取今天的结束时间:" + BeginAndEndTimeOfDateUtil.getEndTime(new Date(), 0));System.out.println("获取今天后2天的开始时间:" + BeginAndEndTimeOfDateUtil.getStartTime(new Date(), 2));System.out.println("获取今天后2天的结束时间:" + BeginAndEndTimeOfDateUtil.getEndTime(new Date(), 2));}}
D:\Java8\bin\java.exe -javaagent:D:\IDEA\lib\idea_rt.jar=51860:D:\IDEA\bin -Dfile.encoding=UTF-8 -classpath 获取今天前1天的开始时间:Mon Aug 12 00:00:00 CST 获取今天前1天的结束时间:Mon Aug 12 23:59:59 CST 获取今天的开始时间:Tue Aug 13 00:00:00 CST 获取今天的结束时间:Tue Aug 13 23:59:59 CST 获取今天后2天的开始时间:Thu Aug 15 00:00:00 CST 获取今天后2天的结束时间:Thu Aug 15 23:59:59 CST Process finished with exit code 0