要写一个Java Job程序,用Quartz包实现,每天零点执行Job,写入一个xls文件,并获取前一天写入的文件,两个文件做一个对比,把对比的结果写到今天的这个文件中。我就在获取前一天的日期上纠结,因为xls文件是用日期命令的。同学有一个比较曲折的方法:
public static void main(String[] args) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
Date date = new Date(System.currentTimeMillis()-24*3600*1000);
String str = dateFormat.format(date);
System.out.print(str);
}
已经用到烂的Date也能实现,真是惊天地泣鬼神,但对于Java日期函数,脑子里只能冲出Date的同学不失为一个很好的办法。
下面我要说的是用Calendar类实现的获取以以为步长向前向后获取日期的方法:
public static void main(String[] args) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
// Date date = new Date(System.currentTimeMillis()-24*3600*1000);
// String str = dateFormat.format(date);
// System.out.println(str);
Calendar calendar = new GregorianCalendar();
Date date2 = new Date();
calendar.setTime(date2);
calendar.add(calendar.DATE, -1);
date2 = calendar.getTime();
System.out.print(dateFormat.format(date2));
}