Java Dates - What's the correct class to use?
<p>So the whole Java Date/Calendar/GregorianCalendar thing is obviously a joke.  What's the right Date class to use?</p>

<p><strong>Edit:</strong> Building an SDK for third parties on Android where the application needs to provide a date</p>

<p><strong>More Edit:</strong> Things that make this so obviously a joke:</p>

<ul>
<li>99% of Date is deprecated</li>
<li>Date's Year is offset from 1900</li>
<li>Date's Month is zero-indexed while day is one-indexed</li>
<li>Dates are mutable</li>
<li>You're supposed to use a Calendar to create a date...</li>
<li>... except you really have to use a GregorianCalendar 
<ul>
<li>Do a significant percent of developers want to use a different calendar?</li>
</ul></li>
<li>Calendar.getTime() returns a Date</li>
<li>There's no Date math (like how far apart are two dates in years)
<ul>
<li>Messing with milliseconds since epoch doesn't count</li>
</ul></li>
<li>You can't chain parts together to get an expression (like the date one year ago today)</li>
<li>Probably more stuff</li>
</ul>
