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.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
An enum declaring the strategy for when and how to display grouping separators (i.e., the
separator, often a comma or period, after every 2-3 powers of ten).
Used in the result class FormattedNumberRange to indicate to the user whether the numbers formatted in the range
were equal or not, and whether or not the identity fallback was applied.
The PKIXReason enumerates the potential PKIX-specific reasons
that an X.509 certification path may be invalid according to the PKIX
(RFC 5280) standard.
The name of the parent class is an homage to the work of Thomas Porter and
Tom Duff, presented in their seminal 1984 paper titled "Compositing Digital Images".
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
A TimeUnit represents time durations at a given unit of
granularity and provides utility methods to convert across units,
and to perform timing and delay operations in these units.
This class was deprecated
in API level 29.
Use the AndroidX
Preference Library for consistent behavior across all devices. For more information on
using the AndroidX Preference Library see
Settings.
A date-time with a time-zone in the ISO-8601 calendar system,
such as 2007-12-03T10:15:30+01:00 Europe/Paris.
This interface imposes a total ordering on the objects of each class that
implements it. This ordering is referred to as the class's natural
ordering, and the class's compareTo method is referred to as
its natural comparison method.
Lists (and arrays) of objects that implement this interface can be sorted
automatically by Collections.sort (and
Arrays.sort). Objects that implement this
interface can be used as keys in a sorted map or as
elements in a sorted set, without the need to
specify a comparator.
The natural ordering for a class C is said to be consistent
with equals if and only if e1.compareTo(e2) == 0 has
the same boolean value as e1.equals(e2) for every
e1 and e2 of class C. Note that null
is not an instance of any class, and e.compareTo(null) should
throw a NullPointerException even though e.equals(null)
returns false.
It is strongly recommended (though not required) that natural orderings be
consistent with equals. This is so because sorted sets (and sorted maps)
without explicit comparators behave "strangely" when they are used with
elements (or keys) whose natural ordering is inconsistent with equals. In
particular, such a sorted set (or sorted map) violates the general contract
for set (or map), which is defined in terms of the equals
method.
For example, if one adds two keys a and b such that
(!a.equals(b) && a.compareTo(b) == 0) to a sorted
set that does not use an explicit comparator, the second add
operation returns false (and the size of the sorted set does not increase)
because a and b are equivalent from the sorted set's
perspective.
Virtually all Java core classes that implement Comparable
have natural orderings that are consistent with equals. One
exception is BigDecimal, whose natural ordering equates BigDecimal objects with equal numerical values and different
representations (such as 4.0 and 4.00). For BigDecimal.equals() to return true,
the representation and numerical value of the two BigDecimal objects must be the same.
For the mathematically inclined, the relation that defines
the natural ordering on a given class C is:
{(x, y) such that x.compareTo(y) <= 0}.
The quotient for this total order is:
{(x, y) such that x.compareTo(y) == 0}.
It follows immediately from the contract for compareTo that the
quotient is an equivalence relation on C, and that the
natural ordering is a total order on C. When we say that a
class's natural ordering is consistent with equals, we mean that the
quotient for the natural ordering is the equivalence relation defined by
the class's equals(Object) method:
{(x, y) such that x.equals(y)}.
In other words, when a class's natural ordering is consistent with
equals, the equivalence classes defined by the equivalence relation
of the equals method and the equivalence classes defined by
the quotient of the compareTo method are the same.
Compares this object with the specified object for order. Returns a
negative integer, zero, or a positive integer as this object is less
than, equal to, or greater than the specified object.
The implementor must ensure signum(x.compareTo(y)) == -signum(y.compareTo(x)) for
all x and y. (This implies that x.compareTo(y) must throw an exception if and only if y.compareTo(x) throws an exception.)
The implementor must also ensure that the relation is transitive:
(x.compareTo(y) > 0 && y.compareTo(z) > 0) implies
x.compareTo(z) > 0.
Finally, the implementor must ensure that x.compareTo(y)==0 implies that signum(x.compareTo(z))
== signum(y.compareTo(z)), for all z.
API Note:
It is strongly recommended, but not strictly required that
(x.compareTo(y)==0) == (x.equals(y)). Generally speaking, any
class that implements the Comparable interface and violates
this condition should clearly indicate this fact. The recommended
language is "Note: this class has a natural ordering that is
inconsistent with equals."
Parameters
o
T: the object to be compared.
Returns
int
a negative integer, zero, or a positive integer as this object
is less than, equal to, or greater than the specified object.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2026-04-16 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-04-16 UTC."],[],[]]