java.util
Class Calendar

java.lang.Object
  |
  +--java.util.Calendar

public abstract class Calendar
extends Object

Calendar is an abstract class for getting and setting dates using a set of integer fields such as YEAR, MONTH, DAY, 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.

 Calendar rightNow = Calendar.getInstance();
 

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.

Inconsistent information. In the J2SE calendar, it is possible to set fields inconsistently. However, in this subset, the DAY_OF_WEEK field cannot be set, and only a subset of the other J2SE Calendar fields are included. So it is not possible to set inconsistent data.

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 is a subset for J2ME of the J2SE Calendar class. Many methods and variables have been pruned, and other methods simplified, in an effort to reduce the size of this class.

See Also:
TimeZone

Field Summary
static int AM
          Value of the AM_PM field indicating the period of the day from midnight to just before noon.
static int AM_PM
          Field number for get and set indicating whether the HOUR is before or after noon.
static int APRIL
          Value of the MONTH field indicating the fourth month of the year.
static int AUGUST
          Value of the MONTH field indicating the eighth month of the year.
static int DATE
          Field number for get and set indicating the day of the month.
static int DAY_OF_MONTH
          Field number for get and set indicating the day of the month.
static int DAY_OF_WEEK
          Field number for get and set indicating the day of the week.
static int DECEMBER
          Value of the MONTH field indicating the twelfth month of the year.
static int FEBRUARY
          Value of the MONTH field indicating the second month of the year.
static int FRIDAY
          Value of the DAY_OF_WEEK field indicating Friday.
static int HOUR
          Field number for get and set indicating the hour of the morning or afternoon.
static int HOUR_OF_DAY
          Field number for get and set indicating the hour of the day.
static int JANUARY
          Value of the MONTH field indicating the first month of the year.
static int JULY
          Value of the MONTH field indicating the seventh month of the year.
static int JUNE
          Value of the MONTH field indicating the sixth month of the year.
static int MARCH
          Value of the MONTH field indicating the third month of the year.
static int MAY
          Value of the MONTH field indicating the fifth month of the year.
static int MILLISECOND
          Field number for get and set indicating the millisecond within the second.
static int MINUTE
          Field number for get and set indicating the minute within the hour.
static int MONDAY
          Value of the DAY_OF_WEEK field indicating Monday.
static int MONTH
          Field number for get and set indicating the month.
static int NOVEMBER
          Value of the MONTH field indicating the eleventh month of the year.
static int OCTOBER
          Value of the MONTH field indicating the tenth month of the year.
static int PM
          Value of the AM_PM field indicating the period of the day from noon to just before midnight.
static int SATURDAY
          Value of the DAY_OF_WEEK field indicating Saturday.
static int SECOND
          Field number for get and set indicating the second within the minute.
static int SEPTEMBER
          Value of the MONTH field indicating the ninth month of the year.
static int SUNDAY
          Value of the DAY_OF_WEEK field indicating Sunday.
static int THURSDAY
          Value of the DAY_OF_WEEK field indicating Thursday.
static int TUESDAY
          Value of the DAY_OF_WEEK field indicating Tuesday.
static int WEDNESDAY
          Value of the DAY_OF_WEEK field indicating Wednesday.
static int YEAR
          Field number for get and set indicating the year.
 
Constructor Summary
protected Calendar()
          protected constructor
 
Method Summary
 boolean after(Object when)
          Compares the time field records.
 boolean before(Object when)
          Compares the time field records.
protected  void computeFields()
          Converts UTC as milliseconds to time field values.
 boolean equals(Object obj)
          Compares this Calendar to an object reference.
 int get(int field)
          Gets the value for a given time field.
static Calendar getInstance()
          Gets a calendar using the default time zone and locale.
static Calendar getInstance(TimeZone zone)
          Gets a calendar using the specified time zone and default locale.
 Date getTime()
          Gets this Calendar's current time.
protected  long getTimeInMillis()
          Gets this Calendar's current time as a long.
 TimeZone getTimeZone()
          Gets the time zone.
 int hashCode()
          Override hashCode.
protected  void RIM_cadb1cd0630fa4be_EXTENSION_add(int field, int amount)
          RIM INTERNAL ONLY
protected  int RIM_cadb1cd0630fa4be_EXTENSION_getActualMaximum(int field)
          RIM INTERNAL ONLY
protected  void RIM_cadb1cd0630fa4be_EXTENSION_roll(int field, int amount)
          RIM INTERNAL ONLY
 void set(int field, int value)
          Sets the time field with the given value.
 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.
 void setTimeZone(TimeZone value)
          Sets the time zone with the given time zone value.
 String toString()
          Return a string representation of this calendar.
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

YEAR

public static final int YEAR
Field number for get and set indicating the year. This is a calendar-specific value.

MONTH

public static final int MONTH
Field number for get and set indicating the month. This is a calendar-specific value.

DATE

public static final int DATE
Field number for get and set indicating the day of the month. This is a synonym for DAY_OF_MONTH.
See Also:
DAY_OF_MONTH

DAY_OF_MONTH

public static final int DAY_OF_MONTH
Field number for get and set indicating the day of the month. This is a synonym for DATE.
See Also:
DATE

DAY_OF_WEEK

public static final int DAY_OF_WEEK
Field number for get and set indicating the day of the week.

AM_PM

public static final int AM_PM
Field 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

HOUR

public static final int HOUR
Field 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

HOUR_OF_DAY

public static final int HOUR_OF_DAY
Field 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.

MINUTE

public static final int MINUTE
Field number for get and set indicating the minute within the hour. E.g., at 10:04:15.250 PM the MINUTE is 4.

SECOND

public static final int SECOND
Field number for get and set indicating the second within the minute. E.g., at 10:04:15.250 PM the SECOND is 15.

MILLISECOND

public static final int MILLISECOND
Field number for get and set indicating the millisecond within the second. E.g., at 10:04:15.250 PM the MILLISECOND is 250.

SUNDAY

public static final int SUNDAY
Value of the DAY_OF_WEEK field indicating Sunday.

MONDAY

public static final int MONDAY
Value of the DAY_OF_WEEK field indicating Monday.

TUESDAY

public static final int TUESDAY
Value of the DAY_OF_WEEK field indicating Tuesday.

WEDNESDAY

public static final int WEDNESDAY
Value of the DAY_OF_WEEK field indicating Wednesday.

THURSDAY

public static final int THURSDAY
Value of the DAY_OF_WEEK field indicating Thursday.

FRIDAY

public static final int FRIDAY
Value of the DAY_OF_WEEK field indicating Friday.

SATURDAY

public static final int SATURDAY
Value of the DAY_OF_WEEK field indicating Saturday.

JANUARY

public static final int JANUARY
Value of the MONTH field indicating the first month of the year.

FEBRUARY

public static final int FEBRUARY
Value of the MONTH field indicating the second month of the year.

MARCH

public static final int MARCH
Value of the MONTH field indicating the third month of the year.

APRIL

public static final int APRIL
Value of the MONTH field indicating the fourth month of the year.

MAY

public static final int MAY
Value of the MONTH field indicating the fifth month of the year.

JUNE

public static final int JUNE
Value of the MONTH field indicating the sixth month of the year.

JULY

public static final int JULY
Value of the MONTH field indicating the seventh month of the year.

AUGUST

public static final int AUGUST
Value of the MONTH field indicating the eighth month of the year.

SEPTEMBER

public static final int SEPTEMBER
Value of the MONTH field indicating the ninth month of the year.

OCTOBER

public static final int OCTOBER
Value of the MONTH field indicating the tenth month of the year.

NOVEMBER

public static final int NOVEMBER
Value of the MONTH field indicating the eleventh month of the year.

DECEMBER

public static final int DECEMBER
Value of the MONTH field indicating the twelfth month of the year.

AM

public static final int AM
Value of the AM_PM field indicating the period of the day from midnight to just before noon.

PM

public static final int PM
Value of the AM_PM field indicating the period of the day from noon to just before midnight.
Constructor Detail

Calendar

protected Calendar()
protected constructor
Method Detail

before

public boolean before(Object when)
Compares the time field records. Equivalent to comparing result of conversion to UTC.
Parameters:
when - the Calendar to be compared with this Calendar.
Returns:
true if the current time of this Calendar is before the time of Calendar when; false otherwise.
Since:
JDE 3.6

after

public boolean after(Object when)
Compares the time field records. Equivalent to comparing result of conversion to UTC.
Parameters:
when - the Calendar to be compared with this Calendar.
Returns:
true if the current time of this Calendar is after the time of Calendar when; false otherwise.
Since:
JDE 3.6

equals

public boolean equals(Object obj)
Compares this Calendar to an object reference.
Overrides:
equals in class Object
Parameters:
obj - the object reference with which to compare
Returns:
true if this object is equal to obj; false otherwise
Since:
JDE 3.6

get

public final int get(int field)
Gets the value for a given time field.
Parameters:
field - the given time field.
Returns:
the value for the given time field.
Since:
JDE 3.6

getInstance

public static Calendar getInstance()
Gets a calendar using the default time zone and locale.
Returns:
a Calendar.

getInstance

public static Calendar getInstance(TimeZone zone)
Gets a calendar using the specified time zone and default locale.
Parameters:
zone - the time zone to use
Returns:
a Calendar.
Since:
JDE 3.6

getTime

public final Date getTime()
Gets this Calendar's current time.
Returns:
the current time.

getTimeInMillis

protected long getTimeInMillis()
Gets this Calendar's current time as a long.
Returns:
the current time as UTC milliseconds from the epoch.

getTimeZone

public TimeZone getTimeZone()
Gets the time zone.
Returns:
the time zone object associated with this calendar.

set

public final void set(int field,
                      int value)
Sets the time field with the given value.
Parameters:
field - the given time field.
value - the value to be set for the given time field.
Since:
JDE 3.6

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().

Parameters:
date - the given Date.
Since:
JDE 3.6

setTimeInMillis

protected void setTimeInMillis(long millis)
Sets this Calendar's current time from the given long value.
Parameters:
date - the new time in UTC milliseconds from the epoch.
Since:
JDE 3.6

setTimeZone

public void setTimeZone(TimeZone value)
Sets the time zone with the given time zone value.
Parameters:
value - the given time zone.
Since:
JDE 3.6

RIM_cadb1cd0630fa4be_EXTENSION_getActualMaximum

protected int RIM_cadb1cd0630fa4be_EXTENSION_getActualMaximum(int field)
RIM INTERNAL ONLY
Since:
JDE 3.6

RIM_cadb1cd0630fa4be_EXTENSION_add

protected void RIM_cadb1cd0630fa4be_EXTENSION_add(int field,
                                                  int amount)
RIM INTERNAL ONLY
Since:
JDE 3.6

RIM_cadb1cd0630fa4be_EXTENSION_roll

protected void RIM_cadb1cd0630fa4be_EXTENSION_roll(int field,
                                                   int amount)
RIM INTERNAL ONLY
Since:
JDE 3.6

toString

public String toString()
Return a string representation of this calendar. This method is intended to be used only for debugging purposes, and the format of the returned string may vary between implementations. The returned string may be empty but may not be null.
Overrides:
toString in class Object
Returns:
a string representation of this calendar.

hashCode

public int hashCode()
Override hashCode. Generates the hash code for the GregorianCalendar object
Overrides:
hashCode in class Object
Following copied from class: java.lang.Object
Returns:
a hash code value for this object.
See Also:
Object.equals(java.lang.Object), Hashtable

computeFields

protected void computeFields()
Converts UTC as milliseconds to time field values.


Copyright 1999-2002 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. All Rights Reserved.
Java is a trademark or registered trademark of Sun Microsystems, Inc. in the US and other countries.