问题是Integer的大小不足以存储当前日期,因此需要使用Long。
日期在内部存储为自1970年1月1日以来的毫秒数。
最大Integer值为2147483648,而自1970年以来的毫秒数当前约为1345618537869
将最大整数值放入日期将产生1970年1月26日星期一。
编辑:代码按照以下注释显示除以1000:
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 : 1345619256Long : 1345619256308Long date : Wed Aug 22 16:37:36 CST 2012Int Date : Wed Aug 22 16:37:36 CST 2012


