Java data type to hold only date

java

Solution

from the JDK: `java.sql.Date`:

A thin wrapper around a millisecond value that allows JDBC to identify this as an SQL DATE value. A milliseconds value represents the number of milliseconds that have passed since `January 1, 1970 00:00:00.000 GMT`.

To conform with the definition of SQL DATE, the millisecond values wrapped by a `java.sql.Date` instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated.

or from JodaTime: `DateMidnight` or `LocalDate` (thanks @cdeszaq)

`DateMidnight` defines a date where the time component is fixed at midnight. The class uses a time zone, thus midnight is local unless a UTC time zone is used.

It is important to emphasise that this class represents the time of midnight on any given day. Note that midnight is defined as 00:00, which is at the very start of a day.

Problem

Which data type in Java can hold just the date and doesn't require a time component? For example, just to store `12/07/2012`. I'm working with persisting the data to/from a database that has a date-only data type, so I'm looking for the best equivalent data type in Java.

Original source

Related problems