当前位置: 代码迷 >> J2ME >> 相干java.util.Date的疑惑
  详细解决方案

相干java.util.Date的疑惑

热度:147   发布时间:2016-04-17 20:58:54.0
有关java.util.Date的疑惑
各位大侠,请问一下,下面的代码为什么得不到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()));
  相关解决方案