简单好用的返回明天0点,昨天0点等任意天数的方法
快速入口:主要思路是在定日期格式时,直接定死时分秒
private static String timeInterval(int amount)throws Exception{
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
calendar.add(Calendar.DATE, amount);
String strTime = sdf.format(calendar.getTime());
return strTime;
}
(1)当需求要求一个日期格式的时间时,可用:
/**
* 计算距此时往前或往后天数0点时间
* @param amount 天数
* @return 返回Date类型的时间
* @throws Exception
*/
private static Date timeInterval(int amount)throws Exception{
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
calendar.add(Calendar.DATE, amount);
String strTime = sdf.format(calendar.getTime());
Date time = sdf.parse(strTime);
return time;
}
public static void main(String[] args) throws Exception {
String time = timeInterval(3);
System.out.println(time);
}
输出结果:
输入 2 -> 2020-05-06 00:00:00
输入 5 -> 2020-05-09 00:00:00
输入 -1 -> 2020-05-03 00:00:00
(2)普遍适用,满足需求是返回字符串格式的时间:
/**
* 计算距此时往前或往后天数0点时间
* @param amount 天数
* @return 返回的String格式的时间
* @throws Exception
*/
private static String timeInterval(int amount)throws Exception{
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
calendar.add(Calendar.DATE, amount);
String strTime = sdf.format(calendar.getTime());
return strTime;
}
public static void main(String[] args) throws Exception {
String time = timeInterval(-1);
System.out.println(time);
}
输出结果:
输入 2 -> 2020-05-06 00:00:00
输入 5 -> 2020-05-09 00:00:00
输入 -1 -> 2020-05-03 00:00:00
注:可修改参数更改日期格式new SimpleDateFormat("yyyy-MM-dd 00:00:00")
如,new SimpleDateFormat("yyyy-MM-dd"),就会输出 2020-05-06,看具体需求。