要写一个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)); }