问题是Integer的大小不足以存储当前日期,因此需要使用Long。
日期在内部存储为自1970年1月1日以来的毫秒数。
最大Integer值为2147483648,而自1970年以来的毫秒数当前约为1345618537869
将最大整数值放入日期将产生1970年1月26日星期一。
int i = (int) (new Date().getTime()/1000);
System.out.println("Integer : " + i);
System.out.println("Long : "+ new Date().getTime());
System.out.println("Long date : " + new Date(new Date().getTime()));
System.out.println("Int Date : " + new Date(((long)i)*1000L));
Integer : 1345619256
Long : 1345619256308
Long date : Wed Aug 22 16:37:36 CST 2012
Int Date : Wed Aug 22 16:37:36 CST 2012