各位大侠,请问一下,下面的代码为什么得不到365天之前的时间呢?
public static void main(String[] args) {
Date date = new Date();
long now = date.getTime();
Date end = new Date(now - 1000*60*60*24*365);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(sdf.format(end));
}
------解决思路----------------------
1000*60*60*24*365 超过int 的最大范围了,溢出了
转换为long 类型就可以了
Date end = new Date(now - 1000L*60*60*24*365);
------解决思路----------------------
不推荐使用java.util.Date来计算时间。请使用java.util.Calendar进行时间或者日期的计算
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_YEAR, -365);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(format.format(calendar.getTime()));