Java : Calendar with Examples
Calendar (Java SE 21 & JDK 21) with Examples.
You will find code examples on most Calendar methods.
Warning :
- The Calendar class is a legacy API. It is recommended to use the newer APIs such as LocalDateTime and ZonedDateTime in the java.time package instead.
Summary
The Calendar class is an abstract class that provides methods for converting between a specific instant in time and a set of calendar fields such as YEAR, MONTH, DAY_OF_MONTH, HOUR, and so on, and for manipulating the calendar fields, such as getting the date of the next week. An instant in time can be represented by a millisecond value that is an offset from the Epoch, January 1, 1970 00:00:00.000 GMT (Gregorian).
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.DECEMBER, 31)
.setTimeOfDay(14, 30, 59)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-12-31 14:30:59
System.out.println(calendar.get(Calendar.YEAR)); // 2100
System.out.println(calendar.get(Calendar.MONTH) == Calendar.DECEMBER); // true
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 14
System.out.println(calendar.get(Calendar.MINUTE)); //30
System.out.println(calendar.get(Calendar.SECOND)); // 59
Fields
static final int ALL_STYLES
A style specifier for getDisplayNames indicating names in all styles, such as "January" and "Jan".
final var calendar = new Calendar.Builder().build();
final var names = calendar.getDisplayNames(
Calendar.MONTH, Calendar.ALL_STYLES, Locale.US);
// {September=8, December=11, February=1, November=10, January=0, October=9,
// August=7, April=3, March=2, July=6, June=5, Apr=3, Aug=7, Dec=11, Feb=1,
// Jan=0, Jul=6, Jun=5, Mar=2, May=4, Nov=10, Oct=9, Sep=8}
System.out.println(names);
static final int AM
Value of the AM_PM field indicating the period of the day from midnight to just before noon.
final var calendar = new Calendar.Builder()
.setTimeOfDay(10, 0, 0)
.build();
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 10
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.AM); // true
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.PM); // false
final var calendar = new Calendar.Builder()
.setTimeOfDay(17, 0, 0)
.build();
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 17
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.AM); // false
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.PM); // true
static final int AM_PM
Field number for get and set indicating whether the HOUR is before or after noon.
final var calendar = new Calendar.Builder()
.setTimeOfDay(10, 0, 0)
.build();
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 10
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.AM); // true
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.PM); // false
final var calendar = new Calendar.Builder()
.setTimeOfDay(17, 0, 0)
.build();
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 17
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.AM); // false
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.PM); // true
static final int APRIL
Value of the MONTH field indicating the fourth month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.APRIL, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.APRIL); // true
protected boolean areFieldsSet
True if fields[] are in sync with the currently set time.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
static final int AUGUST
Value of the MONTH field indicating the eighth month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.AUGUST, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.AUGUST); // true
static final int DATE
Field number for get and set indicating the day of the month.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.FEBRUARY, 15)
.build();
System.out.printf("%tF%n", calendar); // 2100-02-15
System.out.println(calendar.get(Calendar.DATE)); // 15
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); // 15
static final int DAY_OF_MONTH
Field number for get and set indicating the day of the month.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 15)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-15
System.out.println(calendar.get(Calendar.YEAR)); // 2100
System.out.println(calendar.get(Calendar.MONTH) == Calendar.JANUARY); // true
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); // 15
static final int DAY_OF_WEEK
Field number for get and set indicating the day of the week.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 3)
.build();
{
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Sunday
System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); // 1
}
calendar.add(Calendar.DATE, 1);
{
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Monday
System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); // 2
}
calendar.add(Calendar.DATE, 5);
{
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Saturday
System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); // 7
}
static final int DAY_OF_WEEK_IN_MONTH
Field number for get and set indicating the ordinal number of the day of the week within the current month.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Friday
System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)); // 1
calendar.set(Calendar.DAY_OF_MONTH, 7);
System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)); // 1
calendar.set(Calendar.DAY_OF_MONTH, 8);
System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)); // 2
calendar.set(Calendar.DAY_OF_MONTH, 14);
System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)); // 2
calendar.set(Calendar.DAY_OF_MONTH, 15);
System.out.println(calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH)); // 3
static final int DAY_OF_YEAR
Field number for get and set indicating the day number within the current year.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); // 1
calendar.set(2100, Calendar.JANUARY, 31);
System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); // 31
calendar.set(2100, Calendar.FEBRUARY, 1);
System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); // 32
calendar.set(2100, Calendar.DECEMBER, 31);
System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); // 365
static final int DECEMBER
Value of the MONTH field indicating the twelfth month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.DECEMBER, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.DECEMBER); // true
static final int DST_OFFSET
Field number for get and set indicating the daylight saving offset in milliseconds.
final var zone = TimeZone.getTimeZone("America/Los_Angeles");
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.AUGUST, 1)
.setTimeZone(zone)
.build();
System.out.println(calendar.get(Calendar.DST_OFFSET)); // 3600000
static final int ERA
Field number for get and set indicating the era, e.g., AD or BC in the Julian calendar.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.get(Calendar.ERA)); // 1
calendar.set(Calendar.YEAR, -100);
System.out.println(calendar.get(Calendar.ERA)); // 0
static final int FEBRUARY
Value of the MONTH field indicating the second month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.FEBRUARY, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.FEBRUARY); // true
static final int FIELD_COUNT
The number of distinct fields recognized by get and set.
System.out.println(Calendar.FIELD_COUNT); // 17
protected int[] fields
The calendar field values for the currently set time for this calendar.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
static final int FRIDAY
Value of the DAY_OF_WEEK field indicating Friday.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Friday
final var value = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(value == Calendar.FRIDAY); // true
static final int HOUR
Field number for get and set indicating the hour of the morning or afternoon.
final var calendar = new Calendar.Builder()
.setTimeOfDay(14, 30, 59, 999)
.build();
System.out.printf("%tT%n", calendar); // 14:30:59
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 14
System.out.println(calendar.get(Calendar.HOUR)); // 2
System.out.println(calendar.get(Calendar.MINUTE)); // 30
System.out.println(calendar.get(Calendar.SECOND)); // 59
System.out.println(calendar.get(Calendar.MILLISECOND)); // 999
static final int HOUR_OF_DAY
Field number for get and set indicating the hour of the day.
final var calendar = new Calendar.Builder()
.setTimeOfDay(14, 30, 59, 999)
.build();
System.out.printf("%tT%n", calendar); // 14:30:59
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 14
System.out.println(calendar.get(Calendar.HOUR)); // 2
System.out.println(calendar.get(Calendar.MINUTE)); // 30
System.out.println(calendar.get(Calendar.SECOND)); // 59
System.out.println(calendar.get(Calendar.MILLISECOND)); // 999
protected boolean[] isSet
The flags which tell if a specified calendar field for the calendar is set.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
protected boolean isTimeSet
True if then the value of time is valid.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
static final int JANUARY
Value of the MONTH field indicating the first month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.JANUARY); // true
static final int JULY
Value of the MONTH field indicating the seventh month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JULY, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.JULY); // true
static final int JUNE
Value of the MONTH field indicating the sixth month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JUNE, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.JUNE); // true
static final int LONG
A style specifier for getDisplayName and getDisplayNames equivalent to LONG_FORMAT.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var name1 = calendar.getDisplayName(
Calendar.MONTH, Calendar.LONG, Locale.US);
System.out.println(name1); // January
final var name2 = calendar.getDisplayName(
Calendar.MONTH, Calendar.SHORT, Locale.US);
System.out.println(name2); // Jan
final var name3 = calendar.getDisplayName(
Calendar.MONTH, Calendar.NARROW_FORMAT, Locale.US);
System.out.println(name3); // J
static final int LONG_FORMAT
A style specifier for getDisplayName and getDisplayNames indicating a long name used for format.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var name1 = calendar.getDisplayName(
Calendar.MONTH, Calendar.LONG, Locale.US);
System.out.println(name1); // January
final var name2 = calendar.getDisplayName(
Calendar.MONTH, Calendar.LONG_FORMAT, Locale.US);
System.out.println(name2); // January
static final int LONG_STANDALONE
A style specifier for getDisplayName and getDisplayNames indicating a long name used independently, such as a month name as calendar headers.
final var calendar = new Calendar.Builder().build();
final var name1 = calendar.getDisplayNames(
Calendar.ERA, Calendar.LONG, Locale.US);
System.out.println(name1); // {BC=0, AD=1}
final var name2 = calendar.getDisplayNames(
Calendar.ERA, Calendar.LONG_STANDALONE, Locale.US);
System.out.println(name2); // {Before Christ=0, Anno Domini=1}
static final int MARCH
Value of the MONTH field indicating the third month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.MARCH, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.MARCH); // true
static final int MAY
Value of the MONTH field indicating the fifth month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.MAY, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.MAY); // true
static final int MILLISECOND
Field number for get and set indicating the millisecond within the second.
final var calendar = new Calendar.Builder()
.setTimeOfDay(14, 30, 59, 999)
.build();
System.out.printf("%tT%n", calendar); // 14:30:59
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 14
System.out.println(calendar.get(Calendar.HOUR)); // 2
System.out.println(calendar.get(Calendar.MINUTE)); // 30
System.out.println(calendar.get(Calendar.SECOND)); // 59
System.out.println(calendar.get(Calendar.MILLISECOND)); // 999
static final int MINUTE
Field number for get and set indicating the minute within the hour.
final var calendar = new Calendar.Builder()
.setTimeOfDay(14, 30, 59, 999)
.build();
System.out.printf("%tT%n", calendar); // 14:30:59
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 14
System.out.println(calendar.get(Calendar.HOUR)); // 2
System.out.println(calendar.get(Calendar.MINUTE)); // 30
System.out.println(calendar.get(Calendar.SECOND)); // 59
System.out.println(calendar.get(Calendar.MILLISECOND)); // 999
static final int MONDAY
Value of the DAY_OF_WEEK field indicating Monday.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 4)
.build();
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Monday
final var value = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(value == Calendar.MONDAY); // true
static final int MONTH
Field number for get and set indicating the month.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 15)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-15
System.out.println(calendar.get(Calendar.YEAR)); // 2100
System.out.println(calendar.get(Calendar.MONTH) == Calendar.JANUARY); // true
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); // 15
static final int NARROW_FORMAT
A style specifier for getDisplayName and getDisplayNames indicating a narrow name used for format.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var name1 = calendar.getDisplayName(
Calendar.MONTH, Calendar.LONG, Locale.US);
System.out.println(name1); // January
final var name2 = calendar.getDisplayName(
Calendar.MONTH, Calendar.SHORT, Locale.US);
System.out.println(name2); // Jan
final var name3 = calendar.getDisplayName(
Calendar.MONTH, Calendar.NARROW_FORMAT, Locale.US);
System.out.println(name3); // J
static final int NARROW_STANDALONE
A style specifier for getDisplayName and getDisplayNames indicating a narrow name independently.
final var calendar = new Calendar.Builder().build();
final var name1 = calendar.getDisplayNames(
Calendar.ERA, Calendar.NARROW_FORMAT, Locale.US);
System.out.println(name1); // {A=1, B=0}
final var name2 = calendar.getDisplayNames(
Calendar.ERA, Calendar.NARROW_STANDALONE, Locale.US);
System.out.println(name2); // {A=1, B=0}
static final int NOVEMBER
Value of the MONTH field indicating the eleventh month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.NOVEMBER, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.NOVEMBER); // true
static final int OCTOBER
Value of the MONTH field indicating the tenth month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.OCTOBER, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.OCTOBER); // true
static final int PM
Value of the AM_PM field indicating the period of the day from noon to just before midnight.
final var calendar = new Calendar.Builder()
.setTimeOfDay(10, 0, 0)
.build();
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 10
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.AM); // true
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.PM); // false
final var calendar = new Calendar.Builder()
.setTimeOfDay(17, 0, 0)
.build();
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 17
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.AM); // false
System.out.println(calendar.get(Calendar.AM_PM) == Calendar.PM); // true
static final int SATURDAY
Value of the DAY_OF_WEEK field indicating Saturday.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 2)
.build();
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Saturday
final var value = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(value == Calendar.SATURDAY); // true
static final int SECOND
Field number for get and set indicating the second within the minute.
final var calendar = new Calendar.Builder()
.setTimeOfDay(14, 30, 59, 999)
.build();
System.out.printf("%tT%n", calendar); // 14:30:59
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 14
System.out.println(calendar.get(Calendar.HOUR)); // 2
System.out.println(calendar.get(Calendar.MINUTE)); // 30
System.out.println(calendar.get(Calendar.SECOND)); // 59
System.out.println(calendar.get(Calendar.MILLISECOND)); // 999
static final int SEPTEMBER
Value of the MONTH field indicating the ninth month of the year in the Gregorian and Julian calendars.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.SEPTEMBER, 1)
.build();
System.out.println(calendar.get(Calendar.MONTH) == Calendar.SEPTEMBER); // true
static final int SHORT
A style specifier for getDisplayName and getDisplayNames equivalent to SHORT_FORMAT.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var name1 = calendar.getDisplayName(
Calendar.MONTH, Calendar.LONG, Locale.US);
System.out.println(name1); // January
final var name2 = calendar.getDisplayName(
Calendar.MONTH, Calendar.SHORT, Locale.US);
System.out.println(name2); // Jan
final var name3 = calendar.getDisplayName(
Calendar.MONTH, Calendar.NARROW_FORMAT, Locale.US);
System.out.println(name3); // J
static final int SHORT_FORMAT
A style specifier for getDisplayName and getDisplayNames indicating a short name used for format.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var name1 = calendar.getDisplayName(
Calendar.MONTH, Calendar.SHORT, Locale.US);
System.out.println(name1); // Jan
final var name2 = calendar.getDisplayName(
Calendar.MONTH, Calendar.SHORT_FORMAT, Locale.US);
System.out.println(name2); // Jan
static final int SHORT_STANDALONE
A style specifier for getDisplayName and getDisplayNames indicating a short name used independently, such as a month abbreviation as calendar headers.
final var calendar = new Calendar.Builder().build();
final var name1 = calendar.getDisplayNames(
Calendar.ERA, Calendar.SHORT, Locale.US);
System.out.println(name1); // {AD=1, BC=0}
final var name2 = calendar.getDisplayNames(
Calendar.ERA, Calendar.SHORT_STANDALONE, Locale.US);
System.out.println(name2); // {AD=1, BC=0}
static final int SUNDAY
Value of the DAY_OF_WEEK field indicating Sunday.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 3)
.build();
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Sunday
final var value = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(value == Calendar.SUNDAY); // true
static final int THURSDAY
Value of the DAY_OF_WEEK field indicating Thursday.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 7)
.build();
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Thursday
final var value = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(value == Calendar.THURSDAY); // true
protected long time
The currently set time for this calendar, expressed in milliseconds after January 1, 1970, 0:00:00 GMT.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
static final int TUESDAY
Value of the DAY_OF_WEEK field indicating Tuesday.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 5)
.build();
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Tuesday
final var value = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(value == Calendar.TUESDAY); // true
static final int UNDECIMBER
Value of the MONTH field indicating the thirteenth month of the year.
System.out.println(Calendar.UNDECIMBER); // 12
static final int WEDNESDAY
Value of the DAY_OF_WEEK field indicating Wednesday.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 6)
.build();
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Wednesday
final var value = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(value == Calendar.WEDNESDAY); // true
static final int WEEK_OF_MONTH
Field number for get and set indicating the week number within the current month.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getFirstDayOfWeek() == Calendar.SUNDAY); // true
System.out.println(calendar.getMinimalDaysInFirstWeek()); // 1
final Supplier<String> dayOfWeekName = () -> {
return calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
};
System.out.println(dayOfWeekName.get()); // Friday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 1
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 1
calendar.set(Calendar.DAY_OF_MONTH, 2);
System.out.println(dayOfWeekName.get()); // Saturday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 1
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 1
calendar.set(Calendar.DAY_OF_MONTH, 3);
System.out.println(dayOfWeekName.get()); // Sunday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 2
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 2
calendar.set(Calendar.DAY_OF_MONTH, 9);
System.out.println(dayOfWeekName.get()); // Saturday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 2
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 2
calendar.set(Calendar.DAY_OF_MONTH, 10);
System.out.println(dayOfWeekName.get()); // Sunday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 3
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 3
calendar.set(Calendar.DAY_OF_MONTH, 31);
System.out.println(dayOfWeekName.get()); // Sunday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 6
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 6
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
calendar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(dayOfWeekName.get()); // Monday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 1
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 6
calendar.set(Calendar.DAY_OF_MONTH, 7);
System.out.println(dayOfWeekName.get()); // Sunday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 2
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 7
static final int WEEK_OF_YEAR
Field number for get and set indicating the week number within the current year.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getFirstDayOfWeek() == Calendar.SUNDAY); // true
System.out.println(calendar.getMinimalDaysInFirstWeek()); // 1
final Supplier<String> dayOfWeekName = () -> {
return calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
};
System.out.println(dayOfWeekName.get()); // Friday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 1
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 1
calendar.set(Calendar.DAY_OF_MONTH, 2);
System.out.println(dayOfWeekName.get()); // Saturday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 1
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 1
calendar.set(Calendar.DAY_OF_MONTH, 3);
System.out.println(dayOfWeekName.get()); // Sunday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 2
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 2
calendar.set(Calendar.DAY_OF_MONTH, 9);
System.out.println(dayOfWeekName.get()); // Saturday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 2
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 2
calendar.set(Calendar.DAY_OF_MONTH, 10);
System.out.println(dayOfWeekName.get()); // Sunday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 3
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 3
calendar.set(Calendar.DAY_OF_MONTH, 31);
System.out.println(dayOfWeekName.get()); // Sunday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 6
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 6
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
calendar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(dayOfWeekName.get()); // Monday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 1
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 6
calendar.set(Calendar.DAY_OF_MONTH, 7);
System.out.println(dayOfWeekName.get()); // Sunday
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 2
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 7
static final int YEAR
Field number for get and set indicating the year.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 15)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-15
System.out.println(calendar.get(Calendar.YEAR)); // 2100
System.out.println(calendar.get(Calendar.MONTH) == Calendar.JANUARY); // true
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); // 15
static final int ZONE_OFFSET
Field number for get and set indicating the raw offset from GMT in milliseconds.
final var zone = TimeZone.getTimeZone("America/Los_Angeles");
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.setTimeZone(zone)
.build();
System.out.println(calendar.get(Calendar.ZONE_OFFSET)); // -28800000
Constructors
Calendar ()
Constructs a Calendar with the default time zone and the default FORMAT locale.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
Calendar (TimeZone zone, Locale aLocale)
Constructs a calendar with the specified time zone and locale.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
Methods
abstract void add (int field, int amount)
Adds or subtracts the specified amount of time to the given calendar field, based on the calendar's rules.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-01
calendar.add(Calendar.DATE, 15);
System.out.printf("%tF%n", calendar); // 2100-01-16
calendar.add(Calendar.DATE, 30);
System.out.printf("%tF%n", calendar); // 2100-02-15
calendar.add(Calendar.MONTH, 100);
System.out.printf("%tF%n", calendar); // 2108-06-15
boolean after (Object when)
Returns whether this Calendar represents a time after the time represented by the specified Object.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-01
final var calendar2 = new Calendar.Builder()
.setDate(2099, Calendar.JANUARY, 1)
.build();
final var calendar3 = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var calendar4 = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 2)
.build();
System.out.printf("%tF%n", calendar2); // 2099-01-01
System.out.printf("%tF%n", calendar3); // 2100-01-01
System.out.printf("%tF%n", calendar4); // 2100-01-02
System.out.println(calendar.after(calendar2)); // true
System.out.println(calendar.after(calendar3)); // false
System.out.println(calendar.after(calendar4)); // false
boolean before (Object when)
Returns whether this Calendar represents a time before the time represented by the specified Object.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-01
final var calendar2 = new Calendar.Builder()
.setDate(2099, Calendar.JANUARY, 1)
.build();
final var calendar3 = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var calendar4 = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 2)
.build();
System.out.printf("%tF%n", calendar2); // 2099-01-01
System.out.printf("%tF%n", calendar3); // 2100-01-01
System.out.printf("%tF%n", calendar4); // 2100-01-02
System.out.println(calendar.before(calendar2)); // false
System.out.println(calendar.before(calendar3)); // false
System.out.println(calendar.before(calendar4)); // true
final void clear ()
Sets all the calendar field values and the time value (millisecond offset from the Epoch) of this Calendar undefined.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.AUGUST, 10)
.setTimeOfDay(14, 30, 59)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-10 14:30:59
calendar.clear();
System.out.printf("%tF %tT%n", calendar, calendar); // 1970-01-01 00:00:00
final void clear (int field)
Sets the given calendar field value and the time value (millisecond offset from the Epoch) of this Calendar undefined.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.AUGUST, 5)
.build();
System.out.printf("%tF%n", calendar); // 2100-08-05
calendar.clear(Calendar.YEAR);
System.out.printf("%tF%n", calendar); // 1970-08-05
calendar.clear(Calendar.MONTH);
System.out.printf("%tF%n", calendar); // 1970-01-05
calendar.clear(Calendar.DATE);
System.out.printf("%tF%n", calendar); // 1970-01-01
Object clone ()
Creates and returns a copy of this object.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.AUGUST, 5)
.setTimeOfDay(14, 30, 59)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-05 14:30:59
if (calendar.clone() instanceof Calendar cloned) {
System.out.printf("%tF %tT%n", cloned, cloned); // 2100-08-05 14:30:59
}
int compareTo (Calendar anotherCalendar)
Compares the time values (millisecond offsets from the Epoch) represented by two Calendar objects.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-01
final var calendar2 = new Calendar.Builder()
.setDate(2099, Calendar.JANUARY, 1)
.build();
final var calendar3 = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var calendar4 = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 2)
.build();
System.out.printf("%tF%n", calendar2); // 2099-01-01
System.out.printf("%tF%n", calendar3); // 2100-01-01
System.out.printf("%tF%n", calendar4); // 2100-01-02
System.out.println(calendar.compareTo(calendar2)); // 1
System.out.println(calendar.compareTo(calendar3)); // 0
System.out.println(calendar.compareTo(calendar4)); // -1
protected void complete ()
Fills in any unset fields in the calendar fields.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
protected abstract void computeFields ()
Converts the current millisecond time value time to calendar field values in fields[].
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
protected abstract void computeTime ()
Converts the current calendar field values in fields[] to the millisecond time value time.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
boolean equals (Object obj)
Compares this Calendar to the specified Object.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-01
final var calendar2 = new Calendar.Builder()
.setDate(2099, Calendar.JANUARY, 1)
.build();
final var calendar3 = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var calendar4 = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 2)
.build();
System.out.printf("%tF%n", calendar2); // 2099-01-01
System.out.printf("%tF%n", calendar3); // 2100-01-01
System.out.printf("%tF%n", calendar4); // 2100-01-02
System.out.println(calendar.equals(calendar2)); // false
System.out.println(calendar.equals(calendar3)); // true
System.out.println(calendar.equals(calendar4)); // false
int get (int field)
Returns the value of the given calendar field.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.DECEMBER, 31)
.setTimeOfDay(14, 30, 59)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-12-31 14:30:59
System.out.println(calendar.get(Calendar.YEAR)); // 2100
System.out.println(calendar.get(Calendar.MONTH) == Calendar.DECEMBER); // true
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 14
System.out.println(calendar.get(Calendar.MINUTE)); //30
System.out.println(calendar.get(Calendar.SECOND)); // 59
int getActualMaximum (int field)
Returns the maximum value that the specified calendar field could have, given the time value of this Calendar.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getCalendarType()); // gregory
System.out.printf("%tF%n", calendar); // 2100-01-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
System.out.printf("%tF%n", calendar); // 2100-02-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 28
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
int getActualMinimum (int field)
Returns the minimum value that the specified calendar field could have, given the time value of this Calendar.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getCalendarType()); // gregory
System.out.printf("%tF%n", calendar); // 2100-01-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
System.out.printf("%tF%n", calendar); // 2100-02-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 28
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
static Set<String> getAvailableCalendarTypes ()
Returns an unmodifiable Set containing all calendar types supported by Calendar in the runtime environment.
final var types = Calendar.getAvailableCalendarTypes();
for (final var type : types) {
System.out.println(type);
}
// Result
// ↓
//gregory
//buddhist
//japanese
static Locale[] getAvailableLocales ()
Returns an array of all locales for which the getInstance methods of this class can return localized instances.
final var locales = Calendar.getAvailableLocales();
Arrays.sort(locales, Comparator.comparing(Locale::toLanguageTag));
for (final var locale : locales) {
System.out.println(locale);
}
// Result
// ↓
//af
//af_ZA_#Latn
//af_NA
//af_ZA
//agq
//agq_CM
//agq_CM_#Latn
//ak
//ak_GH
//ak_GH_#Latn
//am
//...
String getCalendarType ()
Returns the calendar type of this Calendar.
final var calendar = new Calendar.Builder().build();
final var type = calendar.getCalendarType();
System.out.println(type); // gregory
String getDisplayName (int field, int style, Locale locale)
Returns the string representation of the calendar field value in the given style and locale.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var longName = calendar.getDisplayName(
Calendar.MONTH, Calendar.LONG, Locale.US);
System.out.println(longName); // January
final var shortName = calendar.getDisplayName(
Calendar.MONTH, Calendar.SHORT, Locale.US);
System.out.println(shortName); // Jan
final var jpName = calendar.getDisplayName(
Calendar.MONTH, Calendar.LONG, Locale.JAPAN);
System.out.println(jpName); // 1月
Map<String,Integer> getDisplayNames (int field, int style, Locale locale)
Returns a Map containing all names of the calendar field in the given style and locale and their corresponding field values.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
final var longNames = calendar.getDisplayNames(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
// {Monday=2, Thursday=5, Friday=6, Sunday=1, Wednesday=4, Tuesday=3, Saturday=7}
System.out.println(longNames);
final var shortNames = calendar.getDisplayNames(
Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.US);
// {Thu=5, Tue=3, Wed=4, Sat=7, Fri=6, Sun=1, Mon=2}
System.out.println(shortNames);
final var jpNames = calendar.getDisplayNames(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.JAPAN);
// {木曜日=5, 日曜日=1, 火曜日=3, 金曜日=6, 土曜日=7, 月曜日=2, 水曜日=4}
System.out.println(jpNames);
int getFirstDayOfWeek ()
Gets what the first day of the week is; e.g., SUNDAY in the U.S., MONDAY in France.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.setLocale(Locale.US)
.build();
final var ret = calendar.getFirstDayOfWeek();
System.out.println(ret == Calendar.SUNDAY); // true
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.setLocale(Locale.FRANCE)
.build();
final var ret = calendar.getFirstDayOfWeek();
System.out.println(ret == Calendar.MONDAY); // true
abstract int getGreatestMinimum (int field)
Returns the highest minimum value for the given calendar field of this Calendar instance.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getCalendarType()); // gregory
System.out.printf("%tF%n", calendar); // 2100-01-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
System.out.printf("%tF%n", calendar); // 2100-02-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 28
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
static Calendar getInstance ()
Gets a calendar using the default time zone and locale.
final var calendar = Calendar.getInstance();
System.out.printf("%tF %tT%n", calendar, calendar); // 2024-06-29 16:23:37
static Calendar getInstance (Locale aLocale)
Gets a calendar using the default time zone and specified locale.
final var calendar = Calendar.getInstance(Locale.US);
final var ret = calendar.getFirstDayOfWeek();
System.out.println(ret == Calendar.SUNDAY); // true
final var calendar = Calendar.getInstance(Locale.FRANCE);
final var ret = calendar.getFirstDayOfWeek();
System.out.println(ret == Calendar.MONDAY); // true
static Calendar getInstance (TimeZone zone)
Gets a calendar using the specified time zone and default locale.
final var zone = TimeZone.getTimeZone("America/Los_Angeles");
final var calendar = Calendar.getInstance(zone);
System.out.printf("%tz%n", calendar); // -0700
System.out.println(calendar.get(Calendar.ZONE_OFFSET)); // -28800000
static Calendar getInstance (TimeZone zone, Locale aLocale)
Gets a calendar with the specified time zone and locale.
Please see :
- getInstance(TimeZone zone) for zone parameter.
- getInstance(Locale aLocale) for aLocale parameter.
abstract int getLeastMaximum (int field)
Returns the lowest maximum value for the given calendar field of this Calendar instance.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getCalendarType()); // gregory
System.out.printf("%tF%n", calendar); // 2100-01-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
System.out.printf("%tF%n", calendar); // 2100-02-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 28
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
abstract int getMaximum (int field)
Returns the maximum value for the given calendar field of this Calendar instance.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getCalendarType()); // gregory
System.out.printf("%tF%n", calendar); // 2100-01-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
System.out.printf("%tF%n", calendar); // 2100-02-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 28
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
int getMinimalDaysInFirstWeek ()
Gets what the minimal days required in the first week of the year are; e.g., if the first week is defined as one that contains the first day of the first month of a year, this method returns 1.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
{
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Friday
System.out.println(calendar.getMinimalDaysInFirstWeek()); // 1
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 1
calendar.setMinimalDaysInFirstWeek(7);
System.out.println(calendar.getMinimalDaysInFirstWeek()); // 7
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 52
}
abstract int getMinimum (int field)
Returns the minimum value for the given calendar field of this Calendar instance.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getCalendarType()); // gregory
System.out.printf("%tF%n", calendar); // 2100-01-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
calendar.set(Calendar.MONTH, Calendar.FEBRUARY);
System.out.printf("%tF%n", calendar); // 2100-02-01
{
System.out.println(calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 28
System.out.println(calendar.getMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getMaximum(Calendar.DAY_OF_MONTH)); // 31
System.out.println(calendar.getGreatestMinimum(Calendar.DAY_OF_MONTH)); // 1
System.out.println(calendar.getLeastMaximum(Calendar.DAY_OF_MONTH)); // 28
}
final Date getTime ()
Returns a Date object representing this Calendar's time value (millisecond offset from the Epoch").
final var zone = TimeZone.getTimeZone("UTC");
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.setTimeZone(zone)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-01-01 00:00:00
System.out.println(calendar.getTimeInMillis()); // 4102444800000
final var date = calendar.getTime();
System.out.println(date.getTime()); // 4102444800000
long getTimeInMillis ()
Returns this Calendar's time value in milliseconds.
final var zone = TimeZone.getTimeZone("UTC");
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.setTimeZone(zone)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-01-01 00:00:00
System.out.println(calendar.getTimeInMillis()); // 4102444800000
final var date = calendar.getTime();
System.out.println(date.getTime()); // 4102444800000
TimeZone getTimeZone ()
Gets the time zone.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.AUGUST, 1)
.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"))
.build();
final var zone1 = calendar.getTimeZone();
System.out.println(zone1.getID()); // America/Los_Angeles
calendar.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
final var zone2 = calendar.getTimeZone();
System.out.println(zone2.getID()); // Asia/Tokyo
int getWeeksInWeekYear ()
Returns the number of weeks in the week year represented by this Calendar.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getCalendarType()); // gregory
if (calendar.isWeekDateSupported()) {
System.out.println(calendar.getWeeksInWeekYear()); // 52
System.out.println(calendar.getWeekYear()); // 2100
}
int getWeekYear ()
Returns the week year represented by this Calendar.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getCalendarType()); // gregory
if (calendar.isWeekDateSupported()) {
System.out.println(calendar.getWeeksInWeekYear()); // 52
System.out.println(calendar.getWeekYear()); // 2100
}
int hashCode ()
Returns a hash code for this calendar.
final var zone = TimeZone.getTimeZone("UTC");
final var calendar = new Calendar.Builder()
.setTimeZone(zone)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 1970-01-01 00:00:00
System.out.println(calendar.hashCode()); // 577755
calendar.set(2100, Calendar.JANUARY, 1);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-01-01 00:00:00
System.out.println(calendar.hashCode()); // 751504224
protected final int internalGet (int field)
Returns the value of the given calendar field.
protected. I think it's rare to create a subclass of this class. Therefore, the code example is omitted.
boolean isLenient ()
Tells whether date/time interpretation is to be lenient.
final var calendar = new Calendar.Builder().build();
System.out.println(calendar.isLenient()); // true
{
calendar.set(2100, Calendar.JANUARY, 100);
final var date = calendar.getTime();
System.out.printf("%tF%n", date); // 2100-04-10
}
calendar.setLenient(false);
System.out.println(calendar.isLenient()); // false
try {
calendar.set(2100, Calendar.JANUARY, 100);
final var date = calendar.getTime();
} catch (IllegalArgumentException e) {
System.out.println("IllegalArgumentException! : " + e.getMessage());
}
// Result
// ↓
//IllegalArgumentException! : DAY_OF_MONTH
final boolean isSet (int field)
Determines if the given calendar field has a value set, including cases that the value has been set by internal fields calculations triggered by a get method call.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.AUGUST, 15)
.build();
System.out.printf("%tF%n", calendar); // 2100-08-15
System.out.println(calendar.isSet(Calendar.YEAR)); // true
System.out.println(calendar.isSet(Calendar.MONTH)); // true
System.out.println(calendar.isSet(Calendar.DAY_OF_MONTH)); // true
calendar.clear(Calendar.YEAR);
System.out.printf("%tF%n", calendar); // 1970-08-15
System.out.println(calendar.isSet(Calendar.YEAR)); // false
System.out.println(calendar.isSet(Calendar.MONTH)); // true
System.out.println(calendar.isSet(Calendar.DAY_OF_MONTH)); // true
boolean isWeekDateSupported ()
Returns whether this Calendar supports week dates.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
System.out.println(calendar.getCalendarType()); // gregory
if (calendar.isWeekDateSupported()) {
System.out.println(calendar.getWeeksInWeekYear()); // 52
System.out.println(calendar.getWeekYear()); // 2100
}
abstract void roll (int field, boolean up)
Adds or subtracts (up/down) a single unit of time on the given time field without changing larger fields.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.OCTOBER, 1)
.build();
System.out.printf("%tF%n", calendar); // 2100-10-01
calendar.roll(Calendar.MONTH, true);
System.out.printf("%tF%n", calendar); // 2100-11-01
calendar.roll(Calendar.MONTH, true);
System.out.printf("%tF%n", calendar); // 2100-12-01
calendar.roll(Calendar.MONTH, true);
System.out.printf("%tF%n", calendar); // 2100-01-01
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 2)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-02
calendar.roll(Calendar.DAY_OF_MONTH, false);
System.out.printf("%tF%n", calendar); // 2100-01-01
calendar.roll(Calendar.DAY_OF_MONTH, false);
System.out.printf("%tF%n", calendar); // 2100-01-31
void roll (int field, int amount)
Adds the specified (signed) amount to the specified calendar field without changing larger fields.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JULY, 1)
.build();
System.out.printf("%tF%n", calendar); // 2100-07-01
calendar.roll(Calendar.MONTH, 3);
System.out.printf("%tF%n", calendar); // 2100-10-01
calendar.roll(Calendar.MONTH, 2);
System.out.printf("%tF%n", calendar); // 2100-12-01
calendar.roll(Calendar.MONTH, 1);
System.out.printf("%tF%n", calendar); // 2100-01-01
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 3)
.build();
System.out.printf("%tF%n", calendar); // 2100-01-03
calendar.roll(Calendar.DAY_OF_MONTH, -2);
System.out.printf("%tF%n", calendar); // 2100-01-01
calendar.roll(Calendar.DAY_OF_MONTH, -1);
System.out.printf("%tF%n", calendar); // 2100-01-31
void set (int field, int value)
Sets the given calendar field to the given value.
final var calendar = new Calendar.Builder().build();
System.out.printf("%tF %tT%n", calendar, calendar); // 1970-01-01 00:00:00
calendar.set(Calendar.YEAR, 2100);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-01-01 00:00:00
calendar.set(Calendar.MONTH, Calendar.AUGUST);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-01 00:00:00
calendar.set(Calendar.DAY_OF_MONTH, 15);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-15 00:00:00
calendar.set(Calendar.HOUR_OF_DAY, 14);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-15 14:00:00
calendar.set(Calendar.MINUTE, 30);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-15 14:30:00
calendar.set(Calendar.SECOND, 59);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-15 14:30:59
final void set (int year, int month, int date)
Sets the values for the calendar fields YEAR, MONTH, and DAY_OF_MONTH.
final var calendar = new Calendar.Builder().build();
System.out.printf("%tF %tT%n", calendar, calendar); // 1970-01-01 00:00:00
calendar.set(2100, Calendar.AUGUST, 15);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-15 00:00:00
final void set (int year, int month, int date, int hourOfDay, int minute)
Sets the values for the calendar fields YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, and MINUTE.
final var calendar = new Calendar.Builder().build();
System.out.printf("%tF %tT%n", calendar, calendar); // 1970-01-01 00:00:00
calendar.set(2100, Calendar.AUGUST, 15, 14, 30);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-15 14:30:00
final void set (int year, int month, int date, int hourOfDay, int minute, int second)
Sets the values for the fields YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE, and SECOND.
final var calendar = new Calendar.Builder().build();
System.out.printf("%tF %tT%n", calendar, calendar); // 1970-01-01 00:00:00
calendar.set(2100, Calendar.AUGUST, 15, 14, 30, 59);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-08-15 14:30:59
void setFirstDayOfWeek (int value)
Sets what the first day of the week is; e.g., SUNDAY in the U.S., MONDAY in France.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 3)
.setLocale(Locale.US)
.build();
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Sunday
System.out.println(calendar.getFirstDayOfWeek() == Calendar.SUNDAY); // true
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 2
calendar.setFirstDayOfWeek(Calendar.MONDAY);
System.out.println(calendar.getFirstDayOfWeek() == Calendar.MONDAY); // true
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); // 1
void setLenient (boolean lenient)
Specifies whether or not date/time interpretation is to be lenient.
final var calendar = new Calendar.Builder().build();
System.out.println(calendar.isLenient()); // true
{
calendar.set(2100, Calendar.JANUARY, 100);
final var date = calendar.getTime();
System.out.printf("%tF%n", date); // 2100-04-10
}
calendar.setLenient(false);
System.out.println(calendar.isLenient()); // false
try {
calendar.set(2100, Calendar.JANUARY, 100);
final var date = calendar.getTime();
} catch (IllegalArgumentException e) {
System.out.println("IllegalArgumentException! : " + e.getMessage());
}
// Result
// ↓
//IllegalArgumentException! : DAY_OF_MONTH
void setMinimalDaysInFirstWeek (int value)
Sets what the minimal days required in the first week of the year are; For example, if the first week is defined as one that contains the first day of the first month of a year, call this method with value 1.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.build();
{
final var name = calendar.getDisplayName(
Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
System.out.println(name); // Friday
System.out.println(calendar.getMinimalDaysInFirstWeek()); // 1
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 1
calendar.setMinimalDaysInFirstWeek(7);
System.out.println(calendar.getMinimalDaysInFirstWeek()); // 7
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); // 52
}
final void setTime (Date date)
Sets this Calendar's time with the given Date.
final var zone = TimeZone.getTimeZone("UTC");
final var calendar = new Calendar.Builder()
.setTimeZone(zone)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 1970-01-01 00:00:00
final var date = new Date(4102444800000L);
calendar.setTime(date);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-01-01 00:00:00
System.out.println(calendar.getTimeInMillis()); // 4102444800000
void setTimeInMillis (long millis)
Sets this Calendar's current time from the given long value.
final var zone = TimeZone.getTimeZone("UTC");
final var calendar = new Calendar.Builder()
.setTimeZone(zone)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 1970-01-01 00:00:00
calendar.setTimeInMillis(4102444800000L);
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-01-01 00:00:00
System.out.println(calendar.getTimeInMillis()); // 4102444800000
void setTimeZone (TimeZone value)
Sets the time zone with the given time zone value.
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.AUGUST, 1)
.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles"))
.build();
final var zone1 = calendar.getTimeZone();
System.out.println(zone1.getID()); // America/Los_Angeles
calendar.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));
final var zone2 = calendar.getTimeZone();
System.out.println(zone2.getID()); // Asia/Tokyo
void setWeekDate (int weekYear, int weekOfYear, int dayOfWeek)
Sets the date of this Calendar with the given date specifiers - week year, week of year, and day of week.
final var calendar = new Calendar.Builder().build();
System.out.printf("%tF%n", calendar); // 1970-01-01
calendar.setWeekDate(2100, 1, Calendar.FRIDAY);
System.out.printf("%tF%n", calendar); // 2100-01-01
calendar.setWeekDate(2100, 1, Calendar.SATURDAY);
System.out.printf("%tF%n", calendar); // 2100-01-02
calendar.setWeekDate(2100, 2, Calendar.SATURDAY);
System.out.printf("%tF%n", calendar); // 2100-01-09
calendar.setWeekDate(2100, 10, Calendar.MONDAY);
System.out.printf("%tF%n", calendar); // 2100-03-01
final Instant toInstant ()
Converts this object to an Instant.
final var zone = TimeZone.getTimeZone("UTC");
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.setTimeZone(zone)
.build();
System.out.printf("%tF %tT%n", calendar, calendar); // 2100-01-01 00:00:00
System.out.println(calendar.get(Calendar.ZONE_OFFSET)); // 0
final var instant = calendar.toInstant();
System.out.println(instant); // 2100-01-01T00:00:00Z
String toString ()
Return a string representation of this calendar.
final var zone = TimeZone.getTimeZone("UTC");
final var calendar = new Calendar.Builder()
.setDate(2100, Calendar.JANUARY, 1)
.setTimeZone(zone)
.build();
final var str = calendar.toString();
// java.util.GregorianCalendar[time=4102444800000,areFieldsSet=true,
// areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo
// [id="UTC",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],
// firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2100,MONTH=0,
// WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=1,DAY_OF_WEEK=6,
// DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,
// MILLISECOND=0,ZONE_OFFSET=0,DST_OFFSET=0]
System.out.println(str);
Related posts
- Get the current time
- Basics of Date and Time
- Don't use the legacy Date and Calendar classes, use new APIs instead
- API Examples
- ChronoLocalDate
- ChronoLocalDateTime
- ChronoZonedDateTime
- Clock
- Date
- DateTimeException
- DateTimeParseException
- DayOfWeek
- Duration
- Era
- Instant
- InstantSource
- JapaneseDate
- LocalDate
- LocalDateTime
- LocalTime
- Month
- MonthDay
- OffsetDateTime
- OffsetTime
- Period
- Temporal
- TemporalAccessor
- TemporalAdjuster
- TemporalAdjusters
- TimeZone
- Year
- YearMonth
- ZonedDateTime
- ZoneId
- ZoneOffset