public abstract class Calendar
- Object
- Calendar
Calendar is an abstract base class for converting between a Date object and a set of integer fields such as YEAR, MONTH, DAY, HOUR, and so on. (A Date object represents a specific instant in time with millisecond precision. See Date for information about the Date class.)
Subclasses of Calendar interpret a Date according to the rules of a specific calendar system.
Like other locale-sensitive classes, Calendar provides a class method, getInstance, for getting a generally useful object of this type.
A Calendar object can produce all the time field values needed to implement the date-time formatting for a particular language and calendar style (for example, Japanese-Gregorian, Japanese-Traditional).
When computing a Date from time fields, there may be insufficient information to compute the Date (such as only year and month but no day in the month).
Insufficient information. The calendar will use default information to specify the missing fields. This may vary by calendar; for the Gregorian calendar, the default for a field is the same as that of the start of the epoch: i.e., YEAR = 1970, MONTH = JANUARY, DATE = 1, etc. Note: The ambiguity in interpretation of what day midnight belongs to, is resolved as so: midnight “belongs” to the following day. 23:59 on Dec 31, 1969 00:00 on Jan 1, 1970. 12:00 PM is midday, and 12:00 AM is midnight. 11:59 PM on Jan 1 12:00 AM on Jan 2 12:01 AM on Jan 2. 11:59 AM on Mar 10 12:00 PM on Mar 10 12:01 PM on Mar 10. 24:00 or greater are invalid. Hours greater than 12 are invalid in AM/PM mode. Setting the time will never change the date.
If equivalent times are entered in AM/PM or 24 hour mode, equality will be determined by the actual time rather than the entered time.
This class has been subset for J2ME based on the JDK 1.3 Calendar class. Many methods and variables have been pruned, and other methods simplified, in an effort to reduce the size of this class.
Version: CLDC 1.1 02/01/2002 (based on JDK 1.3) See Also:Date, TimeZone
Fields
public static final int AM = 0 | Value of the AM_PM field indicating the period of the day from midnight to just before noon. |
public static final int AM_PM = 9 | Field number for get and set indicating whether the HOUR is before or after noon. |
public static final int APRIL = 3 | Value of the MONTH field indicating the fourth month of the year. |
public static final int AUGUST = 7 | Value of the MONTH field indicating the eighth month of the year. |
public static final int WEEK_OF_YEAR = 3 | Field number for get and set indicating the week number within the current year. |
public static final int WEEK_OF_MONTH = 4 | Field number for get and set indicating the week number within the current month. |
public static final int DATE = 5 | Field number for get and set indicating the day of the month. |
public static final int DAY_OF_MONTH = 5 | Field number for get and set indicating the day of the month. |
public static final int DAY_OF_WEEK = 7 | Field number for get and set indicating the day of the week. |
public static final int DAY_OF_WEEK_IN_MONTH = 8 | Field number for get and set indicating the ordinal number of the day of the week within the current month. |
public static final int DECEMBER = 11 | Value of the MONTH field indicating the twelfth month of the year. |
public static final int FEBRUARY = 1 | Value of the MONTH field indicating the second month of the year. |
protected int[] fields | The field values for the currently set time for this calendar. |
public static final int FRIDAY = 6 | Value of the DAY_OF_WEEK field indicating Friday. |
public static final int HOUR = 10 | Field number for get and set indicating the hour of the morning or afternoon. |
public static final int HOUR_OF_DAY = 11 | Field number for get and set indicating the hour of the day. |
protected boolean[] isSet | The flags which tell if a specified time field for the calendar is set. |
public static final int JANUARY = 0 | Value of the MONTH field indicating the first month of the year. |
public static final int JULY = 6 | Value of the MONTH field indicating the seventh month of the year. |
public static final int JUNE = 5 | Value of the MONTH field indicating the sixth month of the year. |
public static final int MARCH = 2 | Value of the MONTH field indicating the third month of the year. |
public static final int MAY = 4 | Value of the MONTH field indicating the fifth month of the year. |
public static final int MILLISECOND = 14 | Field number for get and set indicating the millisecond within the second. |
public static final int MINUTE = 12 | Field number for get and set indicating the minute within the hour. |
public static final int MONDAY = 2 | Value of the DAY_OF_WEEK field indicating Monday. |
public static final int MONTH = 2 | Field number for get and set indicating the month. |
public static final int NOVEMBER = 10 | Value of the MONTH field indicating the eleventh month of the year. |
public static final int OCTOBER = 9 | Value of the MONTH field indicating the tenth month of the year. |
public static final int PM = 1 | Value of the AM_PM field indicating the period of the day from noon to just before midnight. |
public static final int SATURDAY = 7 | Value of the DAY_OF_WEEK field indicating Saturday. |
public static final int SECOND = 13 | Field number for get and set indicating the second within the minute. |
public static final int SEPTEMBER = 8 | Value of the MONTH field indicating the ninth month of the year. |
public static final int SUNDAY = 1 | Value of the DAY_OF_WEEK field indicating Sunday. |
public static final int THURSDAY = 5 | Value of the DAY_OF_WEEK field indicating Thursday. |
protected long time | The currently set time for this calendar, expressed in milliseconds after January 1, 1970, 0:00:00 GMT. |
public static final int TUESDAY = 3 | Value of the DAY_OF_WEEK field indicating Tuesday. |
public static final int WEDNESDAY = 4 | Value of the DAY_OF_WEEK field indicating Wednesday. |
public static final int YEAR = 1 | Field number for get and set indicating the year. |
Constructors
protected Calendar() | Constructs a Calendar with the default time zone. |
Methods
public boolean after(Object when) | Compares the time field records. |
public boolean before(Object when) | Compares the time field records. |
protected abstract void computeFields() | Converts the current millisecond time value time to field values in fields[]. |
protected abstract void computeTime() | Converts the current field values in fields[] to the millisecond time value time. |
public boolean equals(Object obj) | Compares this calendar to the specified object. |
public final int get(int field) | Gets the value for a given time field. |
public static Calendar getInstance() | Gets a calendar using the default time zone. |
public static Calendar getInstance(TimeZone zone) | Gets a calendar using the specified time zone. |
public final Date getTime() | Gets this Calendar’s current time. |
protected long getTimeInMillis() | Gets this Calendar’s current time as a long expressed in milliseconds after January 1, 1970, 0:00:00 GMT (the epoch). |
public TimeZone getTimeZone() | Gets the time zone. |
public final void set(int field, int value) | Sets the time field with the given value. |
public final void add(int field, int value) | Adds the specified amount to a Calendar field. |
public final void setTime(Date date) | Sets this Calendar’s current time with the given Date. |
protected void setTimeInMillis(long millis) | Sets this Calendar’s current time from the given long value. |
public void setTimeZone(TimeZone value) | Sets the time zone with the given time zone value. |
Inherited methods
Field details
AM
public static final int AM = 0Value of the AM_PM field indicating the period of the day from midnight to just before noon.
See Also:Constant Field Values
AM_PM
public static final int AM_PM = 9Field number for get and set indicating whether the HOUR is before or after noon. E.g., at 10:04:15.250 PM the AM_PM is PM.
See Also:AM, PM, HOUR, Constant Field Values
APRIL
public static final int APRIL = 3Value of the MONTH field indicating the fourth month of the year.
See Also:Constant Field Values
AUGUST
public static final int AUGUST = 7Value of the MONTH field indicating the eighth month of the year.
See Also:Constant Field Values
WEEK_OF_YEAR
public static final int WEEK_OF_YEAR = 3Field number for
get and set indicating the
week number within the current year. The first week of the year, as
defined by getFirstDayOfWeek() and
getMinimalDaysInFirstWeek(), has value 1. Subclasses
define the value of WEEK_OF_YEAR for days before the first
week of the year.See also
#getFirstDayOfWeek#getMinimalDaysInFirstWeek
WEEK_OF_MONTH
public static final int WEEK_OF_MONTH = 4Field number for
get and set indicating the
week number within the current month. The first week of the month, as
defined by getFirstDayOfWeek() and
getMinimalDaysInFirstWeek(), has value 1. Subclasses
define the value of WEEK_OF_MONTH for days before the
first week of the month.See also
#getFirstDayOfWeek#getMinimalDaysInFirstWeek
DATE
public static final int DATE = 5Field number for get and set indicating the day of the month. This is a synonym for DAY_OF_MONTH.
See Also:DAY_OF_MONTH, Constant Field Values
DAY_OF_MONTH
public static final int DAY_OF_MONTH = 5Field number for get and set indicating the day of the month. This is a synonym for DATE.
See Also:DATE, Constant Field Values
DAY_OF_WEEK
public static final int DAY_OF_WEEK = 7Field number for get and set indicating the day of the week.
See Also:Constant Field Values
DAY_OF_WEEK_IN_MONTH
public static final int DAY_OF_WEEK_IN_MONTH = 8Field number for
get and set indicating the
ordinal number of the day of the week within the current month. Together
with the DAY_OF_WEEK field, this uniquely specifies a day
within a month. Unlike WEEK_OF_MONTH and
WEEK_OF_YEAR, this field’s value does not
depend on getFirstDayOfWeek() or
getMinimalDaysInFirstWeek(). DAY_OF_MONTH 1
through 7 always correspond to DAY_OF_WEEK_IN_MONTH 1;
8 through 15 correspond to
DAY_OF_WEEK_IN_MONTH 2, and so on.
DAY_OF_WEEK_IN_MONTH 0 indicates the week before
DAY_OF_WEEK_IN_MONTH 1. Negative values count back from
the end of the month, so the last Sunday of a month is specified as
DAY_OF_WEEK = SUNDAY, DAY_OF_WEEK_IN_MONTH = -1. Because
negative values count backward they will usually be aligned differently
within the month than positive values. For example, if a month has 31
days, DAY_OF_WEEK_IN_MONTH -1 will overlap
DAY_OF_WEEK_IN_MONTH 5 and the end of 4.See also
DECEMBER
public static final int DECEMBER = 11Value of the MONTH field indicating the twelfth month of the year.
See Also:Constant Field Values
FEBRUARY
public static final int FEBRUARY = 1Value of the MONTH field indicating the second month of the year.
See Also:Constant Field Values
fields
protected int[] fieldsThe field values for the currently set time for this calendar.
FRIDAY
public static final int FRIDAY = 6Value of the DAY_OF_WEEK field indicating Friday.
See Also:Constant Field Values
HOUR
public static final int HOUR = 10Field number for get and set indicating the hour of the morning or afternoon. HOUR is used for the 12-hour clock. E.g., at 10:04:15.250 PM the HOUR is 10.
See Also:AM_PM, HOUR_OF_DAY, Constant Field Values
HOUR_OF_DAY
public static final int HOUR_OF_DAY = 11Field number for get and set indicating the hour of the day. HOUR_OF_DAY is used for the 24-hour clock. E.g., at 10:04:15.250 PM the HOUR_OF_DAY is 22.
See Also:Constant Field Values
isSet
protected boolean[] isSetThe flags which tell if a specified time field for the calendar is set. This is an array of FIELD_COUNT booleans,
JANUARY
public static final int JANUARY = 0Value of the MONTH field indicating the first month of the year.
See Also:Constant Field Values
JULY
public static final int JULY = 6Value of the MONTH field indicating the seventh month of the year.
See Also:Constant Field Values
JUNE
public static final int JUNE = 5Value of the MONTH field indicating the sixth month of the year.
See Also:Constant Field Values
MARCH
public static final int MARCH = 2Value of the MONTH field indicating the third month of the year.
See Also:Constant Field Values
MAY
public static final int MAY = 4Value of the MONTH field indicating the fifth month of the year.
See Also:Constant Field Values
MILLISECOND
public static final int MILLISECOND = 14Field number for get and set indicating the millisecond within the second. E.g., at 10:04:15.250 PM the MILLISECOND is 250.
See Also:Constant Field Values
MINUTE
public static final int MINUTE = 12Field number for get and set indicating the minute within the hour. E.g., at 10:04:15.250 PM the MINUTE is 4.
See Also:Constant Field Values
MONDAY
public static final int MONDAY = 2Value of the DAY_OF_WEEK field indicating Monday.
See Also:Constant Field Values
MONTH
public static final int MONTH = 2Field number for get and set indicating the month. This is a calendar-specific value.
See Also:Constant Field Values
NOVEMBER
public static final int NOVEMBER = 10Value of the MONTH field indicating the eleventh month of the year.
See Also:Constant Field Values
OCTOBER
public static final int OCTOBER = 9Value of the MONTH field indicating the tenth month of the year.
See Also:Constant Field Values
PM
public static final int PM = 1Value of the AM_PM field indicating the period of the day from noon to just before midnight.
See Also:Constant Field Values
SATURDAY
public static final int SATURDAY = 7Value of the DAY_OF_WEEK field indicating Saturday.
See Also:Constant Field Values
SECOND
public static final int SECOND = 13Field number for get and set indicating the second within the minute. E.g., at 10:04:15.250 PM the SECOND is 15.
See Also:Constant Field Values
SEPTEMBER
public static final int SEPTEMBER = 8Value of the MONTH field indicating the ninth month of the year.
See Also:Constant Field Values
SUNDAY
public static final int SUNDAY = 1Value of the DAY_OF_WEEK field indicating Sunday.
See Also:Constant Field Values
THURSDAY
public static final int THURSDAY = 5Value of the DAY_OF_WEEK field indicating Thursday.
See Also:Constant Field Values
time
protected long timeThe currently set time for this calendar, expressed in milliseconds after January 1, 1970, 0:00:00 GMT.
TUESDAY
public static final int TUESDAY = 3Value of the DAY_OF_WEEK field indicating Tuesday.
See Also:Constant Field Values
WEDNESDAY
public static final int WEDNESDAY = 4Value of the DAY_OF_WEEK field indicating Wednesday.
See Also:Constant Field Values
YEAR
public static final int YEAR = 1Field number for get and set indicating the year. This is a calendar-specific value.
See Also:Constant Field Values
Constructor details
Calendar
protected Calendar()Constructs a Calendar with the default time zone.
See Also:TimeZone.getDefault()
Method details
after
public boolean after(Object when)Compares the time field records. Equivalent to comparing result of conversion to UTC.
before
public boolean before(Object when)Compares the time field records. Equivalent to comparing result of conversion to UTC.
computeFields
protected abstract void computeFields()Converts the current millisecond time value time to field values in fields[]. This allows you to sync up the time field values with a new time that is set for the calendar.
computeTime
protected abstract void computeTime()Converts the current field values in fields[] to the millisecond time value time.
equals
public boolean equals(Object obj)Compares this calendar to the specified object. The result is true if and only if the argument is not null and is a Calendar object that represents the same calendar as this object.
get
public final int get(int field)Gets the value for a given time field.
getInstance
public static Calendar getInstance()Gets a calendar using the default time zone.
getInstance
public static Calendar getInstance(TimeZone zone)Gets a calendar using the specified time zone.
getTime
public final Date getTime()Gets this Calendar’s current time.
getTimeInMillis
protected long getTimeInMillis()Gets this Calendar’s current time as a long expressed in milliseconds after January 1, 1970, 0:00:00 GMT (the epoch).
getTimeZone
public TimeZone getTimeZone()Gets the time zone.
set
public final void set(int field, int value)Sets the time field with the given value.
add
public final void add(int field, int value)Adds the specified amount to a
Calendar field.Parameters
fieldint- the
Calendarfield to modify. valueint- the amount to add to the field.
Throws
IllegalArgumentException- if
fieldisDST_OFFSETorZONE_OFFSET.
setTime
public final void setTime(Date date)Sets this Calendar’s current time with the given Date.
Note: Calling setTime() with Date(Long.MAX_VALUE) or Date(Long.MIN_VALUE) may yield incorrect field values from get().
setTimeInMillis
protected void setTimeInMillis(long millis)Sets this Calendar’s current time from the given long value.
setTimeZone
public void setTimeZone(TimeZone value)Sets the time zone with the given time zone value.