APIdia Launch Partner
Top Description Fields Constructors Methods
java.time

public final Class OffsetDateTime

extends Object
implements Temporal, TemporalAdjuster, Comparable<OffsetDateTime>, Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable, java.lang.Comparable, java.time.temporal.TemporalAdjuster, java.time.temporal.Temporal, java.time.temporal.TemporalAccessor
Annotations
@ValueBased
Static Imports
java.time.temporal.ChronoField.EPOCH_DAY, .ChronoField.INSTANT_SECONDS, .ChronoField.NANO_OF_DAY, .ChronoField.OFFSET_SECONDS, .ChronoUnit.FOREVER, .ChronoUnit.NANOS

A date-time with an offset from UTC/Greenwich in the ISO-8601 calendar system, such as 2007-12-03T10:15:30+01:00.

OffsetDateTime is an immutable representation of a date-time with an offset. This class stores all date and time fields, to a precision of nanoseconds, as well as the offset from UTC/Greenwich. For example, the value "2nd October 2007 at 13:45:30.123456789 +02:00" can be stored in an OffsetDateTime.

OffsetDateTime, java.time.ZonedDateTime and java.time.Instant all store an instant on the time-line to nanosecond precision. Instant is the simplest, simply representing the instant. OffsetDateTime adds to the instant the offset from UTC/Greenwich, which allows the local date-time to be obtained. ZonedDateTime adds full time-zone rules.

It is intended that ZonedDateTime or Instant is used to model data in simpler applications. This class may be used when modeling date-time concepts in more detail, or when communicating to a database or in a network protocol.

This is a value-based class; programmers should treat instances that are equal as interchangeable and should not use instances for synchronization, or unpredictable behavior may occur. For example, in a future release, synchronization may fail. The equals method should be used for comparisons.

Implementation Specification

This class is immutable and thread-safe.

Since
1.8

Field Summary

Modifier and TypeField and Description
private final LocalDateTime
public static final OffsetDateTime
MAX

The maximum supported OffsetDateTime, '+999999999-12-31T23:59:59.999999999-18:00'.

public static final OffsetDateTime
MIN

The minimum supported OffsetDateTime, '-999999999-01-01T00:00:00+18:00'.

private final ZoneOffset
private static final long
serialVersionUID

Serialization version.

Constructor Summary

AccessConstructor and Description
private
OffsetDateTime(LocalDateTime
the local date-time, not null
dateTime
,
ZoneOffset
the zone offset, not null
offset
)

Constructor.

Method Summary

Modifier and TypeMethod and Description
public Temporal

Returns:

the adjusted object, not null
adjustInto
(Temporal
the target object to be adjusted, not null
temporal
)

Implements java.time.temporal.TemporalAdjuster.adjustInto.

Adjusts the specified temporal object to have the same offset, date and time as this object.

public ZonedDateTime

Returns:

the zoned date-time formed from this date-time, not null
atZoneSameInstant
(ZoneId
the time-zone to use, not null
zone
)

Combines this date-time with a time-zone to create a ZonedDateTime ensuring that the result has the same instant.

public ZonedDateTime

Returns:

the zoned date-time formed from this date and the earliest valid time for the zone, not null
atZoneSimilarLocal
(ZoneId
the time-zone to use, not null
zone
)

Combines this date-time with a time-zone to create a ZonedDateTime trying to keep the same local date and time.

private static int

Returns:

the comparator value, that is less than zero if datetime1 is before datetime2, zero if they are equal, greater than zero if datetime1 is after datetime2
compareInstant
(OffsetDateTime
the first date-time to compare, not null
datetime1
,
OffsetDateTime
the other date-time to compare to, not null
datetime2
)

Compares this OffsetDateTime to another date-time.

public int

Returns:

the comparator value, that is the comparison with the other's instant, if they are not equal; and if equal to the other's instant, the comparison of the other's local date-time
compareTo
(OffsetDateTime
the other date-time to compare to, not null
other
)

Implements java.lang.Comparable.compareTo.

Compares this date-time to another date-time.

public boolean

Returns:

true if this is equal to the other date-time
equals
(Object
the object to check, null returns false
obj
)

Overrides java.lang.Object.equals.

Checks if this date-time is equal to another date-time.

public String

Returns:

the formatted date-time string, not null
format
(DateTimeFormatter
the formatter to use, not null
formatter
)

Formats this date-time using the specified formatter.

public static OffsetDateTime

Returns:

the offset date-time, not null
from
(TemporalAccessor
the temporal object to convert, not null
temporal
)

Obtains an instance of OffsetDateTime from a temporal object.

public int

Returns:

the value for the field
get
(TemporalField
the field to get, not null
field
)

Overrides default java.time.temporal.TemporalAccessor.get.

Gets the value of the specified field from this date-time as an int.

public int

Returns:

the day-of-month, from 1 to 31
getDayOfMonth
()

Gets the day-of-month field.

public DayOfWeek

Returns:

the day-of-week, not null
getDayOfWeek
()

Gets the day-of-week field, which is an enum DayOfWeek.

public int

Returns:

the day-of-year, from 1 to 365, or 366 in a leap year
getDayOfYear
()

Gets the day-of-year field.

public int

Returns:

the hour-of-day, from 0 to 23
getHour
()

Gets the hour-of-day field.

public long

Returns:

the value for the field
getLong
(TemporalField
the field to get, not null
field
)

Implements java.time.temporal.TemporalAccessor.getLong.

Gets the value of the specified field from this date-time as a long.

public int

Returns:

the minute-of-hour, from 0 to 59
getMinute
()

Gets the minute-of-hour field.

public Month

Returns:

the month-of-year, not null
getMonth
()

Gets the month-of-year field using the Month enum.

public int

Returns:

the month-of-year, from 1 to 12
getMonthValue
()

Gets the month-of-year field from 1 to 12.

public int

Returns:

the nano-of-second, from 0 to 999,999,999
getNano
()

Gets the nano-of-second field.

public ZoneOffset

Returns:

the zone offset, not null
getOffset
()

Gets the zone offset, such as '+01:00'.

public int

Returns:

the second-of-minute, from 0 to 59
getSecond
()

Gets the second-of-minute field.

public int

Returns:

the year, from MIN_YEAR to MAX_YEAR
getYear
()

Gets the year field.

public int

Returns:

a suitable hash code
hashCode
()

Overrides java.lang.Object.hashCode.

A hash code for this date-time.

public boolean

Returns:

true if this is after the instant of the specified date-time
isAfter
(OffsetDateTime
the other date-time to compare to, not null
other
)

Checks if the instant of this date-time is after that of the specified date-time.

public boolean

Returns:

true if this is before the instant of the specified date-time
isBefore
(OffsetDateTime
the other date-time to compare to, not null
other
)

Checks if the instant of this date-time is before that of the specified date-time.

public boolean

Returns:

true if the instant equals the instant of the specified date-time
isEqual
(OffsetDateTime
the other date-time to compare to, not null
other
)

Checks if the instant of this date-time is equal to that of the specified date-time.

public boolean

Returns:

true if the field is supported on this date-time, false if not
isSupported
(TemporalField
the field to check, null returns false
field
)

Implements java.time.temporal.TemporalAccessor.isSupported.

Checks if the specified field is supported.

public boolean

Returns:

true if the unit can be added/subtracted, false if not
isSupported
(TemporalUnit
the unit to check, null returns false
unit
)

Implements java.time.temporal.Temporal.isSupported.

Checks if the specified unit is supported.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the subtraction made, not null
minus
(TemporalAmount
the amount to subtract, not null
amountToSubtract
)

Overrides default java.time.temporal.Temporal.minus.

Returns a copy of this date-time with the specified amount subtracted.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the specified amount subtracted, not null
minus
(long
the amount of the unit to subtract from the result, may be negative
amountToSubtract
,
TemporalUnit
the unit of the amount to subtract, not null
unit
)

Overrides default java.time.temporal.Temporal.minus.

Returns a copy of this date-time with the specified amount subtracted.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the days subtracted, not null
minusDays
(long
the days to subtract, may be negative
days
)

Returns a copy of this OffsetDateTime with the specified number of days subtracted.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the hours subtracted, not null
minusHours
(long
the hours to subtract, may be negative
hours
)

Returns a copy of this OffsetDateTime with the specified number of hours subtracted.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the minutes subtracted, not null
minusMinutes
(long
the minutes to subtract, may be negative
minutes
)

Returns a copy of this OffsetDateTime with the specified number of minutes subtracted.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the months subtracted, not null
minusMonths
(long
the months to subtract, may be negative
months
)

Returns a copy of this OffsetDateTime with the specified number of months subtracted.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the nanoseconds subtracted, not null
minusNanos
(long
the nanos to subtract, may be negative
nanos
)

Returns a copy of this OffsetDateTime with the specified number of nanoseconds subtracted.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the seconds subtracted, not null
minusSeconds
(long
the seconds to subtract, may be negative
seconds
)

Returns a copy of this OffsetDateTime with the specified number of seconds subtracted.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the weeks subtracted, not null
minusWeeks
(long
the weeks to subtract, may be negative
weeks
)

Returns a copy of this OffsetDateTime with the specified number of weeks subtracted.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the years subtracted, not null
minusYears
(long
the years to subtract, may be negative
years
)

Returns a copy of this OffsetDateTime with the specified number of years subtracted.

public static OffsetDateTime

Returns:

the current date-time using the system clock, not null
now
()

Obtains the current date-time from the system clock in the default time-zone.

public static OffsetDateTime

Returns:

the current date-time using the system clock, not null
now
(ZoneId
the zone ID to use, not null
zone
)

Obtains the current date-time from the system clock in the specified time-zone.

public static OffsetDateTime

Returns:

the current date-time, not null
now
(Clock
the clock to use, not null
clock
)

Obtains the current date-time from the specified clock.

public static OffsetDateTime

Returns:

the offset date-time, not null
of
(LocalDate
the local date, not null
date
,
LocalTime
the local time, not null
time
,
ZoneOffset
the zone offset, not null
offset
)

Obtains an instance of OffsetDateTime from a date, time and offset.

public static OffsetDateTime

Returns:

the offset date-time, not null
of
(LocalDateTime
the local date-time, not null
dateTime
,
ZoneOffset
the zone offset, not null
offset
)

Obtains an instance of OffsetDateTime from a date-time and offset.

public static OffsetDateTime

Returns:

the offset date-time, not null
of
(int
the year to represent, from MIN_YEAR to MAX_YEAR
year
,
int
the month-of-year to represent, from 1 (January) to 12 (December)
month
,
int
the day-of-month to represent, from 1 to 31
dayOfMonth
,
int
the hour-of-day to represent, from 0 to 23
hour
,
int
the minute-of-hour to represent, from 0 to 59
minute
,
int
the second-of-minute to represent, from 0 to 59
second
,
int
the nano-of-second to represent, from 0 to 999,999,999
nanoOfSecond
,
ZoneOffset
the zone offset, not null
offset
)

Obtains an instance of OffsetDateTime from a year, month, day, hour, minute, second, nanosecond and offset.

public static OffsetDateTime

Returns:

the offset date-time, not null
ofInstant
(Instant
the instant to create the date-time from, not null
instant
,
ZoneId
the time-zone, which may be an offset, not null
zone
)

Obtains an instance of OffsetDateTime from an Instant and zone ID.

This creates an offset date-time with the same instant as that specified.

public static OffsetDateTime

Returns:

the parsed offset date-time, not null
parse
(CharSequence
the text to parse such as "2007-12-03T10:15:30+01:00", not null
text
)

Obtains an instance of OffsetDateTime from a text string such as 2007-12-03T10:15:30+01:00.

public static OffsetDateTime

Returns:

the parsed offset date-time, not null
parse
(CharSequence
the text to parse, not null
text
,
DateTimeFormatter
the formatter to use, not null
formatter
)

Obtains an instance of OffsetDateTime from a text string using a specific formatter.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the addition made, not null
plus
(TemporalAmount
the amount to add, not null
amountToAdd
)

Overrides default java.time.temporal.Temporal.plus.

Returns a copy of this date-time with the specified amount added.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the specified amount added, not null
plus
(long
the amount of the unit to add to the result, may be negative
amountToAdd
,
TemporalUnit
the unit of the amount to add, not null
unit
)

Implements java.time.temporal.Temporal.plus.

Returns a copy of this date-time with the specified amount added.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the days added, not null
plusDays
(long
the days to add, may be negative
days
)

Returns a copy of this OffsetDateTime with the specified number of days added.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the hours added, not null
plusHours
(long
the hours to add, may be negative
hours
)

Returns a copy of this OffsetDateTime with the specified number of hours added.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the minutes added, not null
plusMinutes
(long
the minutes to add, may be negative
minutes
)

Returns a copy of this OffsetDateTime with the specified number of minutes added.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the months added, not null
plusMonths
(long
the months to add, may be negative
months
)

Returns a copy of this OffsetDateTime with the specified number of months added.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the nanoseconds added, not null
plusNanos
(long
the nanos to add, may be negative
nanos
)

Returns a copy of this OffsetDateTime with the specified number of nanoseconds added.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the seconds added, not null
plusSeconds
(long
the seconds to add, may be negative
seconds
)

Returns a copy of this OffsetDateTime with the specified number of seconds added.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the weeks added, not null
plusWeeks
(long
the weeks to add, may be negative
weeks
)

Returns a copy of this OffsetDateTime with the specified number of weeks added.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the years added, not null
plusYears
(long
the years to add, may be negative
years
)

Returns a copy of this OffsetDateTime with the specified number of years added.

public <
the type of the result
R
>
R

Returns:

the query result, null may be returned (defined by the query)
query
(TemporalQuery<R>
the query to invoke, not null
query
)

Overrides default java.time.temporal.TemporalAccessor.query.

Queries this date-time using the specified query.

public ValueRange

Returns:

the range of valid values for the field, not null
range
(TemporalField
the field to query the range for, not null
field
)

Overrides default java.time.temporal.TemporalAccessor.range.

Gets the range of valid values for the specified field.

pack-priv static OffsetDateTime
private void
readObject(ObjectInputStream
the stream to read
s
)

Defend against malicious streams.

public static Comparator<OffsetDateTime>

Returns:

a comparator that compares in time-line order
timeLineOrder
()

Gets a comparator that compares two OffsetDateTime instances based solely on the instant.

public long

Returns:

the number of seconds from the epoch of 1970-01-01T00:00:00Z
toEpochSecond
()

Converts this date-time to the number of seconds from the epoch of 1970-01-01T00:00:00Z.

public Instant

Returns:

an Instant representing the same instant, not null
toInstant
()

Converts this date-time to an Instant.

public LocalDate

Returns:

the date part of this date-time, not null
toLocalDate
()

Gets the LocalDate part of this date-time.

public LocalDateTime

Returns:

the local date-time part of this date-time, not null
toLocalDateTime
()

Gets the LocalDateTime part of this date-time.

public LocalTime

Returns:

the time part of this date-time, not null
toLocalTime
()

Gets the LocalTime part of this date-time.

public OffsetTime

Returns:

an OffsetTime representing the time and offset, not null
toOffsetTime
()

Converts this date-time to an OffsetTime.

public String

Returns:

a string representation of this date-time, not null
toString
()

Overrides java.lang.Object.toString.

Outputs this date-time as a String, such as 2007-12-03T10:15:30+01:00.

public ZonedDateTime

Returns:

a zoned date-time representing the same local date-time and offset, not null
toZonedDateTime
()

Converts this date-time to a ZonedDateTime using the offset as the zone ID.

This creates the simplest possible ZonedDateTime using the offset as the zone ID.

To control the time-zone used, see atZoneSameInstant(ZoneId) and atZoneSimilarLocal(ZoneId).

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the time truncated, not null
truncatedTo
(TemporalUnit
the unit to truncate to, not null
unit
)

Returns a copy of this OffsetDateTime with the time truncated.

public long

Returns:

the amount of time between this date-time and the end date-time
until
(Temporal
the end date, exclusive, which is converted to an OffsetDateTime, not null
endExclusive
,
TemporalUnit
the unit to measure the amount in, not null
unit
)

Implements java.time.temporal.Temporal.until.

Calculates the amount of time until another date-time in terms of the specified unit.

private OffsetDateTime
with(LocalDateTime
the date-time to create with, not null
dateTime
,
ZoneOffset
the zone offset to create with, not null
offset
)

Returns a new date-time based on this one, returning this where possible.

public OffsetDateTime

Returns:

an OffsetDateTime based on this with the adjustment made, not null
with
(TemporalAdjuster
the adjuster to use, not null
adjuster
)

Overrides default java.time.temporal.Temporal.with.

Returns an adjusted copy of this date-time.

public OffsetDateTime

Returns:

an OffsetDateTime based on this with the specified field set, not null
with
(TemporalField
the field to set in the result, not null
field
,
long
the new value of the field in the result
newValue
)

Implements java.time.temporal.Temporal.with.

Returns a copy of this date-time with the specified field set to a new value.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the requested day, not null
withDayOfMonth
(int
the day-of-month to set in the result, from 1 to 28-31
dayOfMonth
)

Returns a copy of this OffsetDateTime with the day-of-month altered.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date with the requested day, not null
withDayOfYear
(int
the day-of-year to set in the result, from 1 to 365-366
dayOfYear
)

Returns a copy of this OffsetDateTime with the day-of-year altered.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the requested hour, not null
withHour
(int
the hour-of-day to set in the result, from 0 to 23
hour
)

Returns a copy of this OffsetDateTime with the hour-of-day altered.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the requested minute, not null
withMinute
(int
the minute-of-hour to set in the result, from 0 to 59
minute
)

Returns a copy of this OffsetDateTime with the minute-of-hour altered.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the requested month, not null
withMonth
(int
the month-of-year to set in the result, from 1 (January) to 12 (December)
month
)

Returns a copy of this OffsetDateTime with the month-of-year altered.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the requested nanosecond, not null
withNano
(int
the nano-of-second to set in the result, from 0 to 999,999,999
nanoOfSecond
)

Returns a copy of this OffsetDateTime with the nano-of-second altered.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the requested offset, not null
withOffsetSameInstant
(ZoneOffset
the zone offset to change to, not null
offset
)

Returns a copy of this OffsetDateTime with the specified offset ensuring that the result is at the same instant.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the requested offset, not null
withOffsetSameLocal
(ZoneOffset
the zone offset to change to, not null
offset
)

Returns a copy of this OffsetDateTime with the specified offset ensuring that the result has the same local date-time.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the requested second, not null
withSecond
(int
the second-of-minute to set in the result, from 0 to 59
second
)

Returns a copy of this OffsetDateTime with the second-of-minute altered.

public OffsetDateTime

Returns:

an OffsetDateTime based on this date-time with the requested year, not null
withYear
(int
the year to set in the result, from MIN_YEAR to MAX_YEAR
year
)

Returns a copy of this OffsetDateTime with the year altered.

pack-priv void
private Object

Returns:

the instance of Ser, not null
writeReplace
()

Writes the object using a dedicated serialized form.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait