输入一个起始日期,循环输出日期的前一天或后一天 ,截止到今日
可直接运行
/**
* @author liql
* @date 2020/10/23
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/*
* 日期转换 实现 加或减 一天, 到当前日期停止
* */
public class Test2 {
public static void main(String[] args) {
String str = "2020-10-13 10:08:04"; //以这个日期为起始,今天为结束
new Test2().test(str);
}
/**
*
* @param str 循环输出日期的起始时间( 过去的时间)
*/
public void test(String str) {
Date nowDate = new Date();//获取系统当前日期, 目的是在后续代码中 ,输出到今天后,停止程序
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//日期格式化
Date date = null; //起始时间 date格式
try {
date = sdf.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(date);
while(true){ //一 传进来的时间为起点 ,准备开始循环输出日志
rightNow.add(Calendar.DAY_OF_YEAR, 1);// 日期加1天 如果是减一天,则填 -1 ,执行完该句,日期已经被增加了一天
date=rightNow.getTime();//获取已经增加一天时间后的日期 ,为了循环,所以用date来接收这个新的日期
/*
增加其它单位日期
rightNow.add(Calendar.YEAR, -1);// 日期减1年
System.out.println(sdf.format(rightNow.getTime()));
rightNow.add(Calendar.MONTH, 3);// 日期加3个月
System.out.println(sdf.format(rightNow.getTime()));
rightNow.add(Calendar.DAY_OF_YEAR, 10);// 日期加10天
System.out.println(sdf.format(rightNow.getTime()));
rightNow.add(Calendar.SECOND, 1000);// 日期加1000秒
System.out.println(sdf.format(rightNow.getTime()));
*/
if (date.compareTo(nowDate)==1){//判断日期是否与今天相等
break;
}else {// 日期未到今天 ,输出这个日期,并准备进入下个循环
String formatStr2 = sdf.format(date);
System.out.println("增加一天后 的日期字符串:"+formatStr2);
}
}
}
}