如果我尝试减去1到29天,则返回日期是正确的,但如果我尝试减去超过30天,则返回日期是错误的.谁能解释我哪里出错?
public class MapTesting {
public static void main(String[] args) {
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-dd-MM");
try {
Date date = ft.parse("2011-01-10");
Date su=new Date(date.getTime()-30*24*3600*1000);
System.out.println(su);
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
int常量溢出:30*24*3600*1000.
尝试将整数投入:
Date su=new Date(date.getTime() - 30 * 24 * 3600 * 1000L);