java.text.SimpleDateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Calendar calendar=java.util.Calendar.getInstance();
calendar.roll(java.util.Calendar.DAY_OF_YEAR,-1);
System.out.println("昨天:"+df.format(calendar.getTime()));
calendar=java.util.Calendar.getInstance();
System.out.println("今天:"+df.format(calendar.getTime()));
calendar.roll(java.util.Calendar.DAY_OF_YEAR,1);
System.out.println("明天:"+df.format(calendar.getTime()));
//**********************************************************
这么做的问题是roll方法是不会变动高位字段的,
比如今天是5月31。那么calendar.roll(java.util.Calendar.DAY_OF_YEAR,1);
之后是5月1日。
我的做法如下
//***********************************************************
import java.util.Calendar;
import java.util.Date;
public class Test1
{
static public void main(String args[])
{
Calendar c;
java.text.SimpleDateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd");
c=Calendar.getInstance();
c.setTime(new Date(c.getTime().getTime()-1000*60*60*24));
System.out.println("yesterday "+df.format(c.getTime()));
c=Calendar.getInstance();
System.out.println("today "+df.format(c.getTime()));
c=Calendar.getInstance();
c.setTime(new Date(c.getTime().getTime()+1000*60*60*24));
System.out.println("tomorrow "+df.format(c.getTime()));
}
}
//***********************************************************
这种做法是用日历Calendar得到当前时间的日历,然后为当前的时间增加1000*60*60*24毫秒,就是一整天。
然后就得到了明天,这种做法的好处是具体日期的计算都是由标准包的代码完成,保证正确。
自己写未必有标准代码写的好。