# Java Notes

# java.util.Calendar

The `java.util.Calendar` class is used to represent the date and time. The year, month, day, hour, minute, second, and milliseconds can all be set or obtained from a Calendar object. The default Calendar object has the current time in it. There are also methods for making data calculations.

Other related classes: Date, and DateFormat, ...

## To get the current time

The default Calendar constructor produces an object whose fields are set to the current time for the default timezone and locale.

    Calendar now = Calendar.getInstance();

## Getting the value of the fields

The following field names can be used as an argument to the `Calendar.get(. . .)` method. In all of these examples, `t` is a Calendar object.

Access Method | Meaning
--- | ---
`t.get(Calendar.YEAR)` | int value of the year
`t.get(Calendar.MONTH)` | int value of the month (0-11)
`t.get(Calendar.DAY_OF_MONTH)` | int value of the day of the month (1-31)
`t.get(Calendar.DAY_OF_WEEK)` | int value of the day of the week (0-6)
`t.get(Calendar.HOUR)` | int value of the hour in 12 hour notation (0-12)
`t.get(Calendar.AM_PM)` | returns either Calendar.AM or Calendar.PM
`t.get(Calendar.HOUR_OF_DAY)` | int value of the hour of the day in 24-hour notation (0-24)
`t.get(Calendar.MINUTE)` | int value of the minute in the hour (0-59)
`t.get(Calendar.SECOND)` | int value of the second within the minute (0-59).
`t.get(Calendar.MILLISECOND)` | int value of the milliseconds within a second (0-999).

## Example

See Example - Text Clock.

## References

Sun has never gotten the Date class right, even 10 years after the first release. Take a look at weblogs.java.net/blog/mister__m/archive/2006/02/tiger_and_dates.html.