Do you absolutely have to use
java.util.Date? I would thoroughly recommend that you use Joda Time or the
java.time package from Java 8 instead. In particular, while Date and Calendar always represent a particular instant in time, with no such concept as "just a date", Joda Time does have a type representing this (
LocalDate). Your code will be much clearer if you're able to use types which represent what you're actually trying to do.
There are many, many other reasons to use Joda Time or
java.time instead of the built-in
java.util types - they're generally far better APIs. You can always convert to/from a
java.util.Date at the boundaries of your own code if you need to, e.g. for database interaction.
~ Answered on 2011-02-19 10:35:47