Java's java.util.Date
Jakob Jenkov |
Java's java.util.Date
class was one of Java's first date classes.
Today most of the methods in the class are deprecated in favor of the
java.util.Calendar
class.
You can still use the java.util.Date
class to represent a date though.
Here is how to instantiate a java.util.Date
instance:
java.util.Date date = new java.util.Date();
This Date
instance contains the current time as its date and time.
You can access the date and time contained in a java.util.Date
instance
using the getTime()
method, like this:
java.util.Date date = new java.util.Date(); long time = date.getTime();
You can also create a java.util.Date
from a time in milliseconds, like this:
long now = System.currentTimeMillis(); java.util.Date date = new java.util.Date(now);
Comparing Dates
You can compare java.util.Date
instance because the class implements
the java.lang.Comparable
interface. Here is how:
java.util.Date date1 = new java.util.Date(); java.util.Date date2 = new java.util.Date(); int comparison = date1.compareTo(date2);
The comparison follows the rules for the Comparable
interface, meaning
the compareTo()
method returns:
- An int larger than 0 if the date the method is called on is later than the date given as parameter.
- An int value of 0 if the dates are equal.
- An int value less than 0 if the date the method is called on is earlier than the date given as parameter.
java.util.Date
also has two shortcut methods to do comparisons. These are
before()
and after()
methods. Here are two examples of how
to use them:
java.util.Date date1 = new java.util.Date(); java.util.Date date2 = new java.util.Date(); boolean isBefore = date1.before(date2); boolean isAfter = date1.after (date2);
Getting the Year, Month, Day of Month, Hour etc.
The methods to get the year, month, day of month, hour etc. are deprecated. Apparently the algorithms used internally were not entirely correct.
If you need to get or set the year, month, day of month etc. use a
java.util.Calendar
instead.
Tweet | |
Jakob Jenkov |