# Calendar.Builder

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary:[Ctors](https://developer.android.com/reference/java/util/Calendar.Builder#pubctors)\|[Methods](https://developer.android.com/reference/java/util/Calendar.Builder#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/java/util/Calendar.Builder#inhmethods)  

# Calendar.Builder

`
public
static


class
Calendar.Builder
`  
`

extends `[Object](https://developer.android.com/reference/java/lang/Object)`


``


`

|---|----------------------------|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | java.util.Calendar.Builder |

<br />

*** ** * ** ***

`Calendar.Builder`is used for creating a`Calendar`from various date-time parameters.

There are two ways to set a`Calendar`to a date-time value. One is to set the instant parameter to a millisecond offset from the[Epoch](https://developer.android.com/reference/java/util/Calendar#Epoch). The other is to set individual field parameters, such as[YEAR](https://developer.android.com/reference/java/util/Calendar#YEAR), to their desired values. These two ways can't be mixed. Trying to set both the instant and individual fields will cause an[IllegalStateException](https://developer.android.com/reference/java/lang/IllegalStateException)to be thrown. However, it is permitted to override previous values of the instant or field parameters.

If no enough field parameters are given for determining date and/or time, calendar specific default values are used when building a`Calendar`. For example, if the[YEAR](https://developer.android.com/reference/java/util/Calendar#YEAR)value isn't given for the Gregorian calendar, 1970 will be used. If there are any conflicts among field parameters, the[resolution rules](https://developer.android.com/reference/java/util/Calendar#resolution)are applied. Therefore, the order of field setting matters.

In addition to the date-time parameters, the[locale](https://developer.android.com/reference/java/util/Calendar.Builder#setLocale(java.util.Locale)),[time zone](https://developer.android.com/reference/java/util/Calendar.Builder#setTimeZone(java.util.TimeZone)),[week definition](https://developer.android.com/reference/java/util/Calendar.Builder#setWeekDefinition(int,%20int)), and[leniency mode](https://developer.android.com/reference/java/util/Calendar.Builder#setLenient(boolean))parameters can be set.

**Examples**

The following are sample usages. Sample code assumes that the`Calendar`constants are statically imported.

The following code produces a`Calendar`with date 2012-12-31 (Gregorian) because Monday is the first day of a week with the[ISO 8601 compatible week parameters](https://developer.android.com/reference/java/util/GregorianCalendar#iso8601_compatible_setting).  

```
   Calendar cal = new Calendar.Builder().setCalendarType("iso8601")
                        .setWeekDate(2013, 1, MONDAY).build();
```

The following code produces a Japanese`Calendar`with date 1989-01-08 (Gregorian), assuming that the default[ERA](https://developer.android.com/reference/java/util/Calendar#ERA)is*Heisei*that started on that day.  

```
   Calendar cal = new Calendar.Builder().setCalendarType("japanese")
                        .setFields(YEAR, 1, DAY_OF_YEAR, 1).build();
```

<br />

**See also:**

- [Calendar.getInstance(TimeZone, Locale)](https://developer.android.com/reference/java/util/Calendar#getInstance(java.util.TimeZone,%20java.util.Locale))
- [Calendar.fields](https://developer.android.com/reference/java/util/Calendar#fields)

## Summary

|                                                      ### Public constructors                                                       ||
|---------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[Builder](https://developer.android.com/reference/java/util/Calendar.Builder#Builder())`() ` Constructs a`Calendar.Builder`. |

|                                                                                                                                                                                                                                           ### Public methods                                                                                                                                                                                                                                            ||
|-------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` `[Calendar](https://developer.android.com/reference/java/util/Calendar)                 | ` `[build](https://developer.android.com/reference/java/util/Calendar.Builder#build())`() ` Returns a`Calendar`built from the parameters set by the setter methods.                                                                                                                                                                                                                                          |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[set](https://developer.android.com/reference/java/util/Calendar.Builder#set(int,%20int))`(int field, int value) ` Sets the`field`parameter to the given`value`.                                                                                                                                                                                                                                          |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setCalendarType](https://developer.android.com/reference/java/util/Calendar.Builder#setCalendarType(java.lang.String))`(`[String](https://developer.android.com/reference/java/lang/String)` type) ` Sets the calendar type parameter to the given`type`.                                                                                                                                                |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setDate](https://developer.android.com/reference/java/util/Calendar.Builder#setDate(int,%20int,%20int))`(int year, int month, int dayOfMonth) ` Sets the date field parameters to the values given by`year`,`month`, and`dayOfMonth`.                                                                                                                                                                    |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setFields](https://developer.android.com/reference/java/util/Calendar.Builder#setFields(int[]))`(int... fieldValuePairs) ` Sets field parameters to their values given by`fieldValuePairs`that are pairs of a field and its value.                                                                                                                                                                       |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setInstant](https://developer.android.com/reference/java/util/Calendar.Builder#setInstant(java.util.Date))`(`[Date](https://developer.android.com/reference/java/util/Date)` instant) ` Sets the instant parameter to the`instant`value given by a[Date](https://developer.android.com/reference/java/util/Date).                                                                                        |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setInstant](https://developer.android.com/reference/java/util/Calendar.Builder#setInstant(long))`(long instant) ` Sets the instant parameter to the given`instant`value that is a millisecond offset from[the Epoch](https://developer.android.com/reference/java/util/Calendar#Epoch).                                                                                                                  |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setLenient](https://developer.android.com/reference/java/util/Calendar.Builder#setLenient(boolean))`(boolean lenient) ` Sets the lenient mode parameter to the value given by`lenient`.                                                                                                                                                                                                                  |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setLocale](https://developer.android.com/reference/java/util/Calendar.Builder#setLocale(java.util.Locale))`(`[Locale](https://developer.android.com/reference/java/util/Locale)` locale) ` Sets the locale parameter to the given`locale`.                                                                                                                                                               |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setTimeOfDay](https://developer.android.com/reference/java/util/Calendar.Builder#setTimeOfDay(int,%20int,%20int))`(int hourOfDay, int minute, int second) ` Sets the time of day field parameters to the values given by`hourOfDay`,`minute`, and`second`.                                                                                                                                               |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setTimeOfDay](https://developer.android.com/reference/java/util/Calendar.Builder#setTimeOfDay(int,%20int,%20int,%20int))`(int hourOfDay, int minute, int second, int millis) ` Sets the time of day field parameters to the values given by`hourOfDay`,`minute`,`second`, and`millis`.                                                                                                                   |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setTimeZone](https://developer.android.com/reference/java/util/Calendar.Builder#setTimeZone(java.util.TimeZone))`(`[TimeZone](https://developer.android.com/reference/java/util/TimeZone)` zone) ` Sets the time zone parameter to the given`zone`.                                                                                                                                                      |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setWeekDate](https://developer.android.com/reference/java/util/Calendar.Builder#setWeekDate(int,%20int,%20int))`(int weekYear, int weekOfYear, int dayOfWeek) ` Sets the week-based date parameters to the values with the given date specifiers - week year, week of year, and day of week.                                                                                                             |
| ` `[Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | ` `[setWeekDefinition](https://developer.android.com/reference/java/util/Calendar.Builder#setWeekDefinition(int,%20int))`(int firstDayOfWeek, int minimalDaysInFirstWeek) ` Sets the week definition parameters to the values given by`firstDayOfWeek`and`minimalDaysInFirstWeek`that are used to determine the[first week](https://developer.android.com/reference/java/util/Calendar#first_week)of a year. |

| ### Inherited methods |
|-----------------------|---|
| From class` `[java.lang.Object](https://developer.android.com/reference/java/lang/Object)` ` |--------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` `[Object](https://developer.android.com/reference/java/lang/Object)          | ` `[clone](https://developer.android.com/reference/java/lang/Object#clone())`() ` Creates and returns a copy of this object.                                                                                                                                                      | | ` boolean`                                                                     | ` `[equals](https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` obj) ` Indicates whether some other object is "equal to" this one.                                           | | ` void`                                                                        | ` `[finalize](https://developer.android.com/reference/java/lang/Object#finalize())`() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.                                                          | | ` final `[Class](https://developer.android.com/reference/java/lang/Class)`<?>` | ` `[getClass](https://developer.android.com/reference/java/lang/Object#getClass())`() ` Returns the runtime class of this`Object`.                                                                                                                                                | | ` int`                                                                         | ` `[hashCode](https://developer.android.com/reference/java/lang/Object#hashCode())`() ` Returns a hash code value for the object.                                                                                                                                                 | | ` final void`                                                                  | ` `[notify](https://developer.android.com/reference/java/lang/Object#notify())`() ` Wakes up a single thread that is waiting on this object's monitor.                                                                                                                            | | ` final void`                                                                  | ` `[notifyAll](https://developer.android.com/reference/java/lang/Object#notifyAll())`() ` Wakes up all threads that are waiting on this object's monitor.                                                                                                                         | | ` `[String](https://developer.android.com/reference/java/lang/String)          | ` `[toString](https://developer.android.com/reference/java/lang/Object#toString())`() ` Returns a string representation of the object.                                                                                                                                            | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long,%20int))`(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed. | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait(long))`(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*, or until a certain amount of real time has elapsed.                   | | ` final void`                                                                  | ` `[wait](https://developer.android.com/reference/java/lang/Object#wait())`() ` Causes the current thread to wait until it is awakened, typically by being*notified* or*interrupted*.                                                                                             | ||

## Public constructors

### Builder

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Builder ()
```

Constructs a`Calendar.Builder`.

<br />

## Public methods

### build

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar build ()
```

Returns a`Calendar`built from the parameters set by the setter methods. The calendar type given by the[setCalendarType](https://developer.android.com/reference/java/util/Calendar.Builder#setCalendarType(java.lang.String))method or the[locale](https://developer.android.com/reference/java/util/Calendar.Builder#setLocale(java.util.Locale))is used to determine what`Calendar`to be created. If no explicit calendar type is given, the locale's default calendar is created.

If the calendar type is`"iso8601"`, the[Gregorian change date](https://developer.android.com/reference/java/util/GregorianCalendar#setGregorianChange(java.util.Date))of a[GregorianCalendar](https://developer.android.com/reference/java/util/GregorianCalendar)is set to`Date(Long.MIN_VALUE)`to be the*proleptic* Gregorian calendar. Its week definition parameters are also set to be[compatible with the ISO 8601 standard](https://developer.android.com/reference/java/util/GregorianCalendar#iso8601_compatible_setting). Note that the[getCalendarType](https://developer.android.com/reference/java/util/GregorianCalendar#getCalendarType())method of a`GregorianCalendar`created with`"iso8601"`returns`"gregory"`.

The default values are used for locale and time zone if these parameters haven't been given explicitly.

Since Android 13, if the locale contains the time zone with "tz"[Unicode extension](https://developer.android.com/reference/java/util/Locale#def_locale_extension), and time zone hasn't been given explicitly, time zone in the locale is used.

Any out of range field values are either normalized in lenient mode or detected as an invalid value in non-lenient mode.

<br />

|                                                                  Returns                                                                  ||
|------------------------------------------------------------------------|-------------------------------------------------------------------|
| [Calendar](https://developer.android.com/reference/java/util/Calendar) | a`Calendar`built with parameters of this`Calendar.Builder` <br /> |

|                                                                                                                                          Throws                                                                                                                                          ||
|--------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if the calendar type is unknown, or if any invalid field values are given in non-lenient mode, or if a week date is given for the calendar type that doesn't support week dates. |

**See also:**

- [Calendar.getInstance(TimeZone, Locale)](https://developer.android.com/reference/java/util/Calendar#getInstance(java.util.TimeZone,%20java.util.Locale))
- [Locale.getDefault(Locale.Category)](https://developer.android.com/reference/java/util/Locale#getDefault(java.util.Locale.Category))
- [TimeZone.getDefault()](https://developer.android.com/reference/java/util/TimeZone#getDefault())  

### set

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder set (int field, 
                int value)
```

Sets the`field`parameter to the given`value`.`field`is an index to the[Calendar.fields](https://developer.android.com/reference/java/util/Calendar#fields), such as[DAY_OF_MONTH](https://developer.android.com/reference/java/util/Calendar#DAY_OF_MONTH). Field value validation is not performed in this method. Any out of range values are either normalized in lenient mode or detected as an invalid value in non-lenient mode when building a`Calendar`.

<br />

|                       Parameters                       ||
|---------|-----------------------------------------------|
| `field` | `int`: an index to the`Calendar`fields <br /> |
| `value` | `int`: the field value <br />                 |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

|                                                                                                                                                Throws                                                                                                                                                 ||
|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if`field`is invalid                                                                                                                                                                           |
| [IllegalStateException](https://developer.android.com/reference/java/lang/IllegalStateException)       | if the instant value has already been set, or if fields have been set too many (approximately[Integer.MAX_VALUE](https://developer.android.com/reference/java/lang/Integer#MAX_VALUE)) times. |

**See also:**

- [Calendar.set(int, int)](https://developer.android.com/reference/java/util/Calendar#set(int,%20int))  

### setCalendarType

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setCalendarType (String type)
```

Sets the calendar type parameter to the given`type`. The calendar type given by this method has precedence over any explicit or implicit calendar type given by the[locale](https://developer.android.com/reference/java/util/Calendar.Builder#setLocale(java.util.Locale)).

In addition to the available calendar types returned by the[Calendar.getAvailableCalendarTypes](https://developer.android.com/reference/java/util/Calendar#getAvailableCalendarTypes())method,`"gregorian"`and`"iso8601"`as aliases of`"gregory"`can be used with this method.

<br />

|                 Parameters                 ||
|--------|------------------------------------|
| `type` | `String`: the calendar type <br /> |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

|                                                                        Throws                                                                         ||
|--------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException)         | if`type`is`null`                              |
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if`type`is unknown                            |
| [IllegalStateException](https://developer.android.com/reference/java/lang/IllegalStateException)       | if another calendar type has already been set |

**See also:**

- [Calendar.getCalendarType()](https://developer.android.com/reference/java/util/Calendar#getCalendarType())
- [Calendar.getAvailableCalendarTypes()](https://developer.android.com/reference/java/util/Calendar#getAvailableCalendarTypes())  

### setDate

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setDate (int year, 
                int month, 
                int dayOfMonth)
```

Sets the date field parameters to the values given by`year`,`month`, and`dayOfMonth`. This method is equivalent to a call to:  

```
   setFields(Calendar.YEAR, year,
             Calendar.MONTH, month,
             Calendar.DAY_OF_MONTH, dayOfMonth);
```

<br />

<br />

|                                                                    Parameters                                                                     ||
|--------------|-------------------------------------------------------------------------------------------------------------------------------------|
| `year`       | `int`: the[YEAR](https://developer.android.com/reference/java/util/Calendar#YEAR)value <br />                                       |
| `month`      | `int`: the[MONTH](https://developer.android.com/reference/java/util/Calendar#MONTH)value (the month numbering is*0-based* ). <br /> |
| `dayOfMonth` | `int`: the[DAY_OF_MONTH](https://developer.android.com/reference/java/util/Calendar#DAY_OF_MONTH)value <br />                       |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

### setFields

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setFields (int... fieldValuePairs)
```

Sets field parameters to their values given by`fieldValuePairs`that are pairs of a field and its value. For example,  

```
   setFields(Calendar.YEAR, 2013,
             Calendar.MONTH, Calendar.DECEMBER,
             Calendar.DAY_OF_MONTH, 23);
```
is equivalent to the sequence of the following[set](https://developer.android.com/reference/java/util/Calendar.Builder#set(int,%20int))calls:  

```
   set(Calendar.YEAR, 2013)
   .set(Calendar.MONTH, Calendar.DECEMBER)
   .set(Calendar.DAY_OF_MONTH, 23);
```

<br />

<br />

|                     Parameters                     ||
|-------------------|---------------------------------|
| `fieldValuePairs` | `int`: field-value pairs <br /> |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

|                                                                                                                                            Throws                                                                                                                                             ||
|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException)         | if`fieldValuePairs`is`null`                                                                                                                                                           |
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if any of fields are invalid, or if`fieldValuePairs.length`is an odd number.                                                                                                          |
| [IllegalStateException](https://developer.android.com/reference/java/lang/IllegalStateException)       | if the instant value has been set, or if fields have been set too many (approximately[Integer.MAX_VALUE](https://developer.android.com/reference/java/lang/Integer#MAX_VALUE)) times. |

### setInstant

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setInstant (Date instant)
```

Sets the instant parameter to the`instant`value given by a[Date](https://developer.android.com/reference/java/util/Date). This method is equivalent to a call to[setInstant(instant.getTime())](https://developer.android.com/reference/java/util/Calendar.Builder#setInstant(long)).

<br />

|                                    Parameters                                     ||
|-----------|------------------------------------------------------------------------|
| `instant` | `Date`: a`Date`representing a millisecond offset from the Epoch <br /> |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

|                                                                         Throws                                                                         ||
|--------------------------------------------------------------------------------------------------|------------------------------------------------------|
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException)   | if`instant`is`null`                                  |
| [IllegalStateException](https://developer.android.com/reference/java/lang/IllegalStateException) | if any of the field parameters have already been set |

**See also:**

- [Calendar.setTime(Date)](https://developer.android.com/reference/java/util/Calendar#setTime(java.util.Date))
- [Calendar.setTimeInMillis(long)](https://developer.android.com/reference/java/util/Calendar#setTimeInMillis(long))
- [Calendar.time](https://developer.android.com/reference/java/util/Calendar#time)  

### setInstant

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setInstant (long instant)
```

Sets the instant parameter to the given`instant`value that is a millisecond offset from[the Epoch](https://developer.android.com/reference/java/util/Calendar#Epoch).

<br />

|                          Parameters                           ||
|-----------|----------------------------------------------------|
| `instant` | `long`: a millisecond offset from the Epoch <br /> |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

|                                                                         Throws                                                                         ||
|--------------------------------------------------------------------------------------------------|------------------------------------------------------|
| [IllegalStateException](https://developer.android.com/reference/java/lang/IllegalStateException) | if any of the field parameters have already been set |

**See also:**

- [Calendar.setTime(Date)](https://developer.android.com/reference/java/util/Calendar#setTime(java.util.Date))
- [Calendar.setTimeInMillis(long)](https://developer.android.com/reference/java/util/Calendar#setTimeInMillis(long))
- [Calendar.time](https://developer.android.com/reference/java/util/Calendar#time)  

### setLenient

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setLenient (boolean lenient)
```

Sets the lenient mode parameter to the value given by`lenient`. If no lenient parameter is given to this`Calendar.Builder`, lenient mode will be used in the[build](https://developer.android.com/reference/java/util/Calendar.Builder#build())method.

<br />

|                                   Parameters                                   ||
|-----------|---------------------------------------------------------------------|
| `lenient` | `boolean`:`true`for lenient mode;`false`for non-lenient mode <br /> |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

**See also:**

- [Calendar.setLenient(boolean)](https://developer.android.com/reference/java/util/Calendar#setLenient(boolean))  

### setLocale

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setLocale (Locale locale)
```

Sets the locale parameter to the given`locale`. If no locale is given to this`Calendar.Builder`, the[Locale.getDefault(java.util.Locale.Category)](https://developer.android.com/reference/java/util/Locale#getDefault(java.util.Locale.Category))} for[Locale.Category.FORMAT](https://developer.android.com/reference/java/util/Locale.Category#FORMAT)will be used.

If no calendar type is explicitly given by a call to the[setCalendarType](https://developer.android.com/reference/java/util/Calendar.Builder#setCalendarType(java.lang.String))method, the`Locale`value is used to determine what type of`Calendar`to be built.

If no week definition parameters are explicitly given by a call to the[setWeekDefinition](https://developer.android.com/reference/java/util/Calendar.Builder#setWeekDefinition(int,%20int))method, the`Locale`'s default values are used.

<br />

|                                            Parameters                                            ||
|----------|----------------------------------------------------------------------------------------|
| `locale` | `Locale`: the[Locale](https://developer.android.com/reference/java/util/Locale) <br /> |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

|                                                       Throws                                                       ||
|------------------------------------------------------------------------------------------------|--------------------|
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException) | if`locale`is`null` |

**See also:**

- [Calendar.getInstance(Locale)](https://developer.android.com/reference/java/util/Calendar#getInstance(java.util.Locale))  

### setTimeOfDay

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setTimeOfDay (int hourOfDay, 
                int minute, 
                int second)
```

Sets the time of day field parameters to the values given by`hourOfDay`,`minute`, and`second`. This method is equivalent to a call to:  

```
   setTimeOfDay(hourOfDay, minute, second, 0);
```

<br />

<br />

|                                                                Parameters                                                                ||
|-------------|-----------------------------------------------------------------------------------------------------------------------------|
| `hourOfDay` | `int`: the[HOUR_OF_DAY](https://developer.android.com/reference/java/util/Calendar#HOUR_OF_DAY)value (24-hour clock) <br /> |
| `minute`    | `int`: the[MINUTE](https://developer.android.com/reference/java/util/Calendar#MINUTE)value <br />                           |
| `second`    | `int`: the[SECOND](https://developer.android.com/reference/java/util/Calendar#SECOND)value <br />                           |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

### setTimeOfDay

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setTimeOfDay (int hourOfDay, 
                int minute, 
                int second, 
                int millis)
```

Sets the time of day field parameters to the values given by`hourOfDay`,`minute`,`second`, and`millis`. This method is equivalent to a call to:  

```
   setFields(Calendar.HOUR_OF_DAY, hourOfDay,
             Calendar.MINUTE, minute,
             Calendar.SECOND, second,
             Calendar.MILLISECOND, millis);
```

<br />

<br />

|                                                                Parameters                                                                ||
|-------------|-----------------------------------------------------------------------------------------------------------------------------|
| `hourOfDay` | `int`: the[HOUR_OF_DAY](https://developer.android.com/reference/java/util/Calendar#HOUR_OF_DAY)value (24-hour clock) <br /> |
| `minute`    | `int`: the[MINUTE](https://developer.android.com/reference/java/util/Calendar#MINUTE)value <br />                           |
| `second`    | `int`: the[SECOND](https://developer.android.com/reference/java/util/Calendar#SECOND)value <br />                           |
| `millis`    | `int`: the[MILLISECOND](https://developer.android.com/reference/java/util/Calendar#MILLISECOND)value <br />                 |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

### setTimeZone

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setTimeZone (TimeZone zone)
```

Sets the time zone parameter to the given`zone`. If no time zone parameter is given to this`Calendar.Builder`, the[TimeZone.getDefault()](https://developer.android.com/reference/java/util/TimeZone#getDefault())} will be used in the[build](https://developer.android.com/reference/java/util/Calendar.Builder#build())method.

<br />

|                                              Parameters                                              ||
|--------|----------------------------------------------------------------------------------------------|
| `zone` | `TimeZone`: the[TimeZone](https://developer.android.com/reference/java/util/TimeZone) <br /> |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

|                                                      Throws                                                      ||
|------------------------------------------------------------------------------------------------|------------------|
| [NullPointerException](https://developer.android.com/reference/java/lang/NullPointerException) | if`zone`is`null` |

**See also:**

- [Calendar.setTimeZone(TimeZone)](https://developer.android.com/reference/java/util/Calendar#setTimeZone(java.util.TimeZone))  

### setWeekDate

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setWeekDate (int weekYear, 
                int weekOfYear, 
                int dayOfWeek)
```

Sets the week-based date parameters to the values with the given date specifiers - week year, week of year, and day of week.

If the specified calendar doesn't support week dates, the[build](https://developer.android.com/reference/java/util/Calendar.Builder#build())method will throw an[IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException).

<br />

|                                                                                                                                                                 Parameters                                                                                                                                                                  ||
|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `weekYear`   | `int`: the week year <br />                                                                                                                                                                                                                                                                                                   |
| `weekOfYear` | `int`: the week number based on`weekYear` <br />                                                                                                                                                                                                                                                                              |
| `dayOfWeek`  | `int`: the day of week value: one of the constants for the[DAY_OF_WEEK](https://developer.android.com/reference/java/util/Calendar#DAY_OF_WEEK)field:[SUNDAY](https://developer.android.com/reference/java/util/Calendar#SUNDAY), ...,[SATURDAY](https://developer.android.com/reference/java/util/Calendar#SATURDAY). <br /> |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

**See also:**

- [Calendar.setWeekDate(int, int, int)](https://developer.android.com/reference/java/util/Calendar#setWeekDate(int,%20int,%20int))
- [Calendar.isWeekDateSupported()](https://developer.android.com/reference/java/util/Calendar#isWeekDateSupported())  

### setWeekDefinition

Added in[API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public Calendar.Builder setWeekDefinition (int firstDayOfWeek, 
                int minimalDaysInFirstWeek)
```

Sets the week definition parameters to the values given by`firstDayOfWeek`and`minimalDaysInFirstWeek`that are used to determine the[first week](https://developer.android.com/reference/java/util/Calendar#first_week)of a year. The parameters given by this method have precedence over the default values given by the[locale](https://developer.android.com/reference/java/util/Calendar.Builder#setLocale(java.util.Locale)).

<br />

|                                                                                                                      Parameters                                                                                                                       ||
|--------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `firstDayOfWeek`         | `int`: the first day of a week; one of[Calendar.SUNDAY](https://developer.android.com/reference/java/util/Calendar#SUNDAY)to[Calendar.SATURDAY](https://developer.android.com/reference/java/util/Calendar#SATURDAY) <br /> |
| `minimalDaysInFirstWeek` | `int`: the minimal number of days in the first week (1..7) <br />                                                                                                                                                           |

|                                                        Returns                                                        ||
|----------------------------------------------------------------------------------------|-------------------------------|
| [Calendar.Builder](https://developer.android.com/reference/java/util/Calendar.Builder) | this`Calendar.Builder` <br /> |

|                                                                             Throws                                                                             ||
|--------------------------------------------------------------------------------------------------------|--------------------------------------------------------|
| [IllegalArgumentException](https://developer.android.com/reference/java/lang/IllegalArgumentException) | if`firstDayOfWeek`or`minimalDaysInFirstWeek`is invalid |

**See also:**

- [Calendar.getFirstDayOfWeek()](https://developer.android.com/reference/java/util/Calendar#getFirstDayOfWeek())
- [Calendar.getMinimalDaysInFirstWeek()](https://developer.android.com/reference/java/util/Calendar#getMinimalDaysInFirstWeek())