The issue is that an Integer is not large enough to store a current date, you need to use a Long.
The date is stored internally as the number of milliseconds since 1/1/1970.
The maximum Integer value is 2147483648, whereas the number of milliseconds since 1970 is currently in the order of 1345618537869
Putting the maximum integer value into a date yields Monday 26th January 1970.
Edit: Code to display division by 1000 as per comment below:
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