java中求一下2008年5月31日,往前倒30天是哪天

2008年5月31日, 往前倒30天是哪天?

马克- to-win:马克 java社区:防盗版实名手机尾号:73203。



import java.util.*;
public class Test {
    public static void main(String[] args) {
        Date date;
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, 2008);
        cal.set(Calendar.MONTH, 4);
        cal.set(Calendar.DAY_OF_MONTH, 31);
        date = cal.getTime();
/* getTime()返回,从January 1, 1970, 00:00:00这个时候,到现在的毫秒数,
public long getTime() Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object.
,60l 表明是长整型, 如果用60的话就是int类型,马克-to-win 会溢出的。 这样we must use 60l*60l*24l*30l*1000l, while we can not use 60*60*24*30*1000, otherwise it will overflow(溢出).
*/
        long myTime = date.getTime() - 60l * 60l * 24l * 30l * 1000l;
/* public void setTime(long time)Sets this Date object to represent a
point in time that is time milliseconds after January 1, 1970
00:00:00 GMT. */
        date.setTime(myTime);
        System.out.println("mDate is" + date);
    }
}

结果是:

mDate isThu May 01 13:06:11 CST 2008