Packages

  • package root
    Definition Classes
    root
  • package java
    Definition Classes
    root
  • package time

    The main API for dates, times, instants, and durations.

    The main API for dates, times, instants, and durations.

    The classes defined here represent the principal date-time concepts, including instants, durations, dates, times, time-zones and periods. They are based on the ISO calendar system, which is the de facto world calendar following the proleptic Gregorian rules. All the classes are immutable and thread-safe.

    Each date time instance is composed of fields that are conveniently made available by the APIs. For lower level access to the fields refer to the org.threeten.bp.temporal package. Each class includes support for printing and parsing all manner of dates and times. Refer to the org.threeten.bp.format package for customization options.

    The org.threeten.bp.chrono package contains the calendar neutral API. This is intended for use by applications that need to use localized calendars. It is recommended that applications use the ISO-8601 dates and time classes from this package across system boundaries, such as to the database or across the network. The calendar neutral API should be reserved for interactions with users.

    Dates and Times

    org.threeten.bp.Instant is essentially a numeric timestamp. The current Instant can be retrieved from a org.threeten.bp.Clock. This is useful for logging and persistence of a point in time and has in the past been associated with storing the result from java.lang.System#currentTimeMillis().

    org.threeten.bp.LocalDate stores a date without a time. This stores a date like '2010-12-03' and could be used to store a birthday.

    org.threeten.bp.LocalTime stores a time without a date. This stores a time like '11:30' and could be used to store an opening or closing time.

    org.threeten.bp.LocalDateTime stores a date and time. This stores a date-time like '2010-12-03T11:30'.

    org.threeten.bp.OffsetTime stores a time and offset from UTC without a date. This stores a date like '11:30+01:00'. The ZoneOffset is of the form '+01:00'.

    org.threeten.bp.OffsetDateTime stores a date and time and offset from UTC. This stores a date-time like '2010-12-03T11:30+01:00'. This is sometimes found in XML messages and other forms of persistence, but contains less information than a full time-zone.

    org.threeten.bp.ZonedDateTime stores a date and time with a time-zone. This is useful if you want to perform accurate calculations of dates and times taking into account the org.threeten.bp.ZoneId, such as 'Europe/Paris'. Where possible, it is recommended to use a simpler class. The widespread use of time-zones tends to add considerable complexity to an application.

    Duration and Period

    Beyond dates and times, the API also allows the storage of period and durations of time. A org.threeten.bp.Duration is a simple measure of time along the time-line in nanoseconds. A org.threeten.bp.Period expresses an amount of time in units meaningful to humans, such as years or hours.

    Additional value types

    org.threeten.bp.Year stores a year on its own. This stores a single year in isolation, such as '2010'.

    org.threeten.bp.YearMonth stores a year and month without a day or time. This stores a year and month, such as '2010-12' and could be used for a credit card expiry.

    org.threeten.bp.MonthDay stores a month and day without a year or time. This stores a month and day-of-month, such as '--12-03' and could be used to store an annual event like a birthday without storing the year.

    org.threeten.bp.Month stores a month on its own. This stores a single month-of-year in isolation, such as 'DECEMBER'.

    org.threeten.bp.DayOfWeek stores a day-of-week on its own. This stores a single day-of-week in isolation, such as 'TUESDAY'.

    Definition Classes
    java
  • package chrono

    Support for calendar systems other than the default ISO.

    Support for calendar systems other than the default ISO.

    The main API is based around the calendar system defined in ISO-8601. This package provides support for alternate systems.

    The supported calendar systems includes:

    -Hijrah calendar -Japanese calendar -Minguo calendar -Thai Buddhist calendar

    It is intended that applications use the main API whenever possible, including code to read and write from a persistent data store, such as a database, and to send dates and times across a network. This package is then used at the user interface level to deal with localized input/output. See ChronoLocalDate for a full discussion of the issues.

    Example

    This example creates and uses a date in a non-ISO calendar system.

     // Print the Thai Buddhist date ChronoLocalDate now1 =
    ThaiBuddhistChronology.INSTANCE.now(); int day = now1.get(ChronoField.DAY_OF_MONTH); int dow =
    now1.get(ChronoField.DAY_OF_WEEK); int month = now1.get(ChronoField.MONTH_OF_YEAR); int year =
    now1.get(ChronoField.YEAR); System.out.printf(" Today is %s %s %d-%s-%d%n",
    now1.getChronology().getId(), dow, day, month, year);
    
    // Enumerate the list of available calendars and print today for each Set<String> names =
    Chronology.getAvailableIds(); for (String name : names) { Chronology<?> chrono =
    Chronology.of(name); ChronoLocalDate<?> date = chrono.now(); System.out.printf(" %20s:
    %s%n", chrono.getId(), date.toString()); }
    
    // Print today's date and the last day of the year for the Thai Buddhist Calendar.
    ChronoLocalDate first = now1 .with(ChronoField.DAY_OF_MONTH, 1) .with(ChronoField.MONTH_OF_YEAR,
    1); ChronoLocalDate last = first .plus(1, ChronoUnit.YEARS) .minus(1, ChronoUnit.DAYS);
    System.out.printf(" %s: 1st of year: %s; end of year: %s%n", last.getChronology().getId(), first,
    last); 
    

    Definition Classes
    time
  • package format

    Provides classes to print and parse dates and times.

    Provides classes to print and parse dates and times.

    Printing and parsing is based around the DateTimeFormatter class. That class contains common formatters and factory methods. The org.threeten.bp.format.DateTimeFormatterBuilder DateTimeFormatterBuilder class is available for advanced and complex use cases.

    Localization occurs by calling org.threeten.bp.format.DateTimeFormatter#withLocale(java.util.Locale) withLocale(Locale) on the formatter. Further customization is possible using DecimalStyle.

    Definition Classes
    time
  • package temporal

    Access to date and time using fields and units.

    Access to date and time using fields and units.

    This package expands on the base package to provide additional functionality for more powerful use cases. Support is included for:

    • Units of date-time, such as years, months, days and hours
    • Fields of date-time, such as month-of-year, day-of-week or hour-of-day
    • Date-time adjustment functions
    • Different definitions of weeks

    Fields and Units

    Dates and times are expressed in terms of fields and units. A unit is used to measure an amount of time, such as years, days or minutes. All units implement org.threeten.bp.temporal.TemporalUnit. The set of well known units is defined in org.threeten.bp.temporal.ChronoUnit, for example, org.threeten.bp.temporal.ChronoUnit#DAYS. The unit interface is designed to allow applications to add their own units.

    A field is used to express part of a larger date-time, such as year, month-of-year or second-of-minute. All fields implement org.threeten.bp.temporal.TemporalField. The set of well known fields are defined in org.threeten.bp.temporal.ChronoField, for example, org.threeten.bp.temporal.ChronoField#HOUR_OF_DAY. An additional fields are defined by org.threeten.bp.temporal.JulianFields. The field interface is designed to allow applications to add their own fields.

    This package provides tools that allow the units and fields of date and time to be accessed in a general way most suited for frameworks. org.threeten.bp.temporal.Temporal provides the abstraction for date time types that support fields. Its methods support getting the value of a field, creating a new date time with the value of a field modified, and extracting another date time type, typically used to extract the offset or time-zone.

    One use of fields in application code is to retrieve fields for which there is no convenience method. For example, getting the day-of-month is common enough that there is a method on LocalDate called getDayOfMonth(). However for more unusual fields it is necessary to use the field. For example, date.get(ChronoField.ALIGNED_WEEK_OF_MONTH). The fields also provide access to the range of valid values.

    Adjustment

    A key part of the date-time problem space is adjusting a date to a new, related value, such as the "last day of the month", or "next Wednesday". These are modeled as functions that adjust a base date-time. The functions implement org.threeten.bp.temporal.TemporalAdjuster and operate on org.threeten.bp.temporal.Temporal. A set of common functions are provided in org.threeten.bp.temporal.TemporalAdjusters. For example, to find the first occurrence of a day-of-week after a given date, use org.threeten.bp.temporal.TemporalAdjusters#next(DayOfWeek), such as date.with(next(MONDAY)).

    Weeks

    Different locales have different definitions of the week. For example, in Europe the week typically starts on a Monday, while in the US it starts on a Sunday. The org.threeten.bp.temporal.WeekFields class models this distinction.

    The ISO calendar system defines an additional week-based division of years. This defines a year based on whole Monday to Monday weeks. This is modeled in org.threeten.bp.temporal.IsoFields.

    Definition Classes
    time
  • package zone

    Support for time-zones and their rules.

    Support for time-zones and their rules.

    Daylight Saving Time and Time-Zones are concepts used by Governments to alter local time. This package provides support for time-zones, their rules and the resulting gaps and overlaps in the local time-line typically caused by Daylight Saving Time.

    Definition Classes
    time
  • Clock
  • DateTimeException
  • DayOfWeek
  • Duration
  • Instant
  • LocalDate
  • LocalDateTime
  • LocalTime
  • Month
  • MonthDay
  • OffsetDateTime
  • OffsetTime
  • Period
  • Year
  • YearMonth
  • ZoneId
  • ZoneOffset
  • ZoneRegion
  • ZonedDateTime

object Instant extends Serializable

Annotations
@SerialVersionUID()
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Instant
  2. Serializable
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. lazy val EPOCH: Instant

    Constant for the 1970-01-01T00:00:00Z epoch instant.

  5. lazy val MAX: Instant

    The maximum supported Instant, '1000000000-12-31T23:59:59.999999999Z'.

    The maximum supported Instant, '1000000000-12-31T23:59:59.999999999Z'. This could be used by an application as a "far future" instant.

    This is one year later than the maximum LocalDateTime. This provides sufficient values to handle the range of ZoneOffset which affect the instant in addition to the local date-time. The value is also chosen such that the value of the year fits in an int.

  6. lazy val MIN: Instant

    The minimum supported Instant, '-1000000000-01-01T00:00Z'.

    The minimum supported Instant, '-1000000000-01-01T00:00Z'. This could be used by an application as a "far past" instant.

    This is one year earlier than the minimum LocalDateTime. This provides sufficient values to handle the range of ZoneOffset which affect the instant in addition to the local date-time. The value is also chosen such that the value of the year fits in an int.

  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  12. def from(temporal: TemporalAccessor): Instant

    Obtains an instance of Instant from a temporal object.

    Obtains an instance of Instant from a temporal object.

    A TemporalAccessor represents some form of date and time information. This factory converts the arbitrary temporal object to an instance of Instant.

    The conversion extracts the INSTANT_SECONDS and ChronoField#NANO_OF_SECOND NANO_OF_SECOND fields.

    This method matches the signature of the functional interface TemporalQuery allowing it to be used as a query via method reference, Instant::from.

    temporal

    the temporal object to convert, not null

    returns

    the instant, not null

    Exceptions thrown

    DateTimeException if unable to convert to an { @code Instant}

  13. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. def now(clock: Clock): Instant

    Obtains the current instant from the specified clock.

    Obtains the current instant from the specified clock.

    This will query the specified clock to obtain the current time.

    Using this method allows the use of an alternate clock for testing. The alternate clock may be introduced using dependency injection.

    clock

    the clock to use, not null

    returns

    the current instant, not null

  20. def now: Instant

    Obtains the current instant from the system clock.

    Obtains the current instant from the system clock.

    This will query the system UTC clock to obtain the current instant.

    Using this method will prevent the ability to use an alternate time-source for testing because the clock is effectively hard-coded.

    returns

    the current instant using the system clock, not null

  21. def ofEpochMilli(epochMilli: Long): Instant

    Obtains an instance of Instant using milliseconds from the epoch of 1970-01-01T00:00:00Z.

    Obtains an instance of Instant using milliseconds from the epoch of 1970-01-01T00:00:00Z.

    The seconds and nanoseconds are extracted from the specified milliseconds.

    epochMilli

    the number of milliseconds from 1970-01-01T00:00:00Z

    returns

    an instant, not null

    Exceptions thrown

    DateTimeException if the instant exceeds the maximum or minimum instant

  22. def ofEpochSecond(epochSecond: Long, nanoAdjustment: Long): Instant

    Obtains an instance of Instant using seconds from the epoch of 1970-01-01T00:00:00Z and nanosecond fraction of second.

    Obtains an instance of Instant using seconds from the epoch of 1970-01-01T00:00:00Z and nanosecond fraction of second.

    This method allows an arbitrary number of nanoseconds to be passed in. The factory will alter the values of the second and nanosecond in order to ensure that the stored nanosecond is in the range 0 to 999,999,999. For example, the following will result in the exactly the same instant:

     Instant.ofSeconds(3, 1); Instant.ofSeconds(4, -999_999_999); Instant.ofSeconds(2,
    1000_000_001); 
    

    epochSecond

    the number of seconds from 1970-01-01T00:00:00Z

    nanoAdjustment

    the nanosecond adjustment to the number of seconds, positive or negative

    returns

    an instant, not null

    Exceptions thrown

    ArithmeticException if numeric overflow occurs

    DateTimeException if the instant exceeds the maximum or minimum instant

  23. def ofEpochSecond(epochSecond: Long): Instant

    Obtains an instance of Instant using seconds from the epoch of 1970-01-01T00:00:00Z.

    Obtains an instance of Instant using seconds from the epoch of 1970-01-01T00:00:00Z.

    The nanosecond field is set to zero.

    epochSecond

    the number of seconds from 1970-01-01T00:00:00Z

    returns

    an instant, not null

    Exceptions thrown

    DateTimeException if the instant exceeds the maximum or minimum instant

  24. def parse(text: CharSequence): Instant

    Obtains an instance of Instant from a text string such as 2007-12-03T10:15:30.000Z.

    Obtains an instance of Instant from a text string such as 2007-12-03T10:15:30.000Z.

    The string must represent a valid instant in UTC and is parsed using DateTimeFormatter#ISO_INSTANT.

    text

    the text to parse, not null

    returns

    the parsed instant, not null

    Exceptions thrown

    DateTimeParseException if the text cannot be parsed

  25. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  26. def toString(): String
    Definition Classes
    AnyRef → Any
  27. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  28. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  29. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped