I feel for you... as a former .NET programmer, I asked the same questions, the time API in .NET (timespans, operator overloading) is very convenient.
First, to create a specific date, you use either a deprecated API, or:
Calendar c = Calendar.getInstance();
c.set(2000, 31, 12)
To subtract a day you do evil things like
Date firstDate = ...
Calendar c = Calendar.getInstance();
c.setTime(fistDate);
c.add(Calendar.DATE,-1);
Date dayAgo = c.getTime();
or worse
Date d = new Date();
Date d2 = new Date(d.getTime() - 1000*60*60*24);
To find out how much time passed between two dates (in days / weeks / months)... it gets even worse
However DateUtils from apache (org.apache.commons.lang.time.DateUtils
) offer some convenient methods and I found myself using only them lately
As Brabster wrote, Joda Time is also a good external library, but apache seems more "common" than anything else...