- java.lang.Object
-
- java.time.OffsetDateTime
-
- すべての実装されたインタフェース:
Serializable
,Comparable<OffsetDateTime>
,Temporal
,TemporalAccessor
,TemporalAdjuster
public final class OffsetDateTime extends Object implements Temporal, TemporalAdjuster, Comparable<OffsetDateTime>, Serializable
ISO-8601暦体系におけるUTC/グリニッジからのオフセット付きの日時(2007-12-03T10:15:30+01:00
など)。OffsetDateTime
は、オフセットを使った日付/時間の不変の表現です。 このクラスでは、UTC/グリニッジからのオフセットの他に、すべての日付と時間のフィールドをナノ秒の精度まで格納します。 たとえば、値"2007年10月2日、13:45:30.123456789 +02:00"はOffsetDateTime
に格納できます。OffsetDateTime
、ZonedDateTime
、およびInstant
はすべて、時系列上のインスタントをナノ秒の精度まで格納します。Instant
はもっとも単純で、単にインスタントを表します。OffsetDateTime
は、UTC/グリニッジからのオフセットをインスタントに加算して、ローカル日付/時間を取得できるようにします。ZonedDateTime
は完全なタイムゾーン・ルールを追加します。ZonedDateTime
またはInstant
はより単純なアプリケーションのデータのモデル化に使用するよう意図されています。 このクラスは、日付/時間の概念をより詳細にモデル化する場合や、データベースとの通信またはネットワーク・プロトコルでの通信を行う場合に使用できます。これは値ベースのクラスです。
OffsetDateTime
のインスタンスに対して、アイデンティティの影響を受けやすい操作(参照型等価演算子(==
)、アイデンティティ・ハッシュ・コード、同期化など)を使用すると、予測できない結果が生じることがあるため、使わないようにしてください。 比較する場合は、equals
メソッドを使用することをお薦めします。- 実装要件:
- このクラスは不変でスレッドセーフです。
- 導入されたバージョン:
- 1.8
- 関連項目:
- 直列化された形式
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static OffsetDateTime
MAX
サポートされている最大のOffsetDateTime
である「+999999999-12-31T23:59:59.999999999-18:00」。static OffsetDateTime
MIN
サポートされている最小のOffsetDateTime
である「-999999999-01-01T00:00:00+18:00」。
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 Temporal
adjustInto(Temporal temporal)
指定された時間的オブジェクトを、このオブジェクトと同じオフセット、日付、および時間を持つように調整します。ZonedDateTime
atZoneSameInstant(ZoneId zone)
結果に同じインスタントが含まれるようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTime
を作成します。ZonedDateTime
atZoneSimilarLocal(ZoneId zone)
同じローカルの日付と時間を保持するようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTime
を作成します。int
compareTo(OffsetDateTime other)
この日付/時間を別の日付/時間と比較します。boolean
equals(Object obj)
この日付/時間が別の日付/時間と等しいかどうかをチェックします。String
format(DateTimeFormatter formatter)
指定されたフォーマッタを使用してこの日付/時間を書式設定します。static OffsetDateTime
from(TemporalAccessor temporal)
時間的オブジェクトからOffsetDateTime
のインスタンスを取得します。int
get(TemporalField field)
指定されたフィールドの値をこの日付/時間からint
として取得します。int
getDayOfMonth()
「月の日」フィールドを取得します。DayOfWeek
getDayOfWeek()
列挙型DayOfWeek
である曜日フィールドを取得します。int
getDayOfYear()
「年の日」フィールドを取得します。int
getHour()
時フィールドを取得します。long
getLong(TemporalField field)
指定されたフィールドの値をこの日付/時間からlong
として取得します。int
getMinute()
分フィールドを取得します。Month
getMonth()
列挙型Month
を使用して、月フィールドを取得します。int
getMonthValue()
月フィールドを取得します(1-12)。int
getNano()
ナノ秒フィールドを取得します。ZoneOffset
getOffset()
「+01:00」などのゾーン・オフセットを取得します。int
getSecond()
秒フィールドを取得します。int
getYear()
年フィールドを取得します。int
hashCode()
この日付/時間のハッシュ・コード。boolean
isAfter(OffsetDateTime other)
この日付/時間のインスタントが、指定された日付/時間のインスタントより後であるかどうかをチェックします。boolean
isBefore(OffsetDateTime other)
この日付/時間のインスタントが、指定された日付/時間のインスタントより前であるかどうかをチェックします。boolean
isEqual(OffsetDateTime other)
この日付/時間のインスタントが、指定された日付/時間のインスタントと等しいかどうかをチェックします。boolean
isSupported(TemporalField field)
指定されたフィールドがサポートされているかどうかをチェックします。boolean
isSupported(TemporalUnit unit)
指定された単位がサポートされているかどうかをチェックします。OffsetDateTime
minus(long amountToSubtract, TemporalUnit unit)
指定された量を減算した、この日付/時間のコピーを返します。OffsetDateTime
minus(TemporalAmount amountToSubtract)
指定された量を減算した、この日付/時間のコピーを返します。OffsetDateTime
minusDays(long days)
指定された日数を減算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
minusHours(long hours)
指定された時間数を減算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
minusMinutes(long minutes)
指定された分数を減算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
minusMonths(long months)
指定された月数を減算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
minusNanos(long nanos)
指定されたナノ秒数を減算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
minusSeconds(long seconds)
指定された秒数を減算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
minusWeeks(long weeks)
指定された週数を減算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
minusYears(long years)
指定された年数を減算して、このOffsetDateTime
のコピーを返します。static OffsetDateTime
now()
デフォルトのタイムゾーンのシステム・クロックから現在の日付/時間を取得します。static OffsetDateTime
now(Clock clock)
指定されたクロックから現在の日付/時間を取得します。static OffsetDateTime
now(ZoneId zone)
指定されたタイムゾーンのシステム・クロックから現在の日付/時間を取得します。static OffsetDateTime
of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
年、月、日、時、分、秒、ナノ秒、およびオフセットからOffsetDateTime
のインスタンスを取得します。static OffsetDateTime
of(LocalDate date, LocalTime time, ZoneOffset offset)
日付、時間、およびオフセットからOffsetDateTime
のインスタンスを取得します。static OffsetDateTime
of(LocalDateTime dateTime, ZoneOffset offset)
日付/時間およびオフセットからOffsetDateTime
のインスタンスを取得します。static OffsetDateTime
ofInstant(Instant instant, ZoneId zone)
Instant
およびゾーンIDからOffsetDateTime
のインスタンスを取得します。static OffsetDateTime
parse(CharSequence text)
2007-12-03T10:15:30+01:00
などのテキスト文字列からOffsetDateTime
のインスタンスを取得します。static OffsetDateTime
parse(CharSequence text, DateTimeFormatter formatter)
特定のフォーマッタを使用して、テキスト文字列からOffsetDateTime
のインスタンスを取得します。OffsetDateTime
plus(long amountToAdd, TemporalUnit unit)
この日時のコピーに指定された時間を追加したものを返します。OffsetDateTime
plus(TemporalAmount amountToAdd)
この日時のコピーに指定された時間を追加したものを返します。OffsetDateTime
plusDays(long days)
指定された日数を加算して、このOffsetDateTimeのコピーを返します。OffsetDateTime
plusHours(long hours)
指定された時間数を加算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
plusMinutes(long minutes)
指定された分数を加算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
plusMonths(long months)
指定された月数を加算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
plusNanos(long nanos)
指定されたナノ秒数を加算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
plusSeconds(long seconds)
指定された秒数を加算して、このOffsetDateTime
のコピーを返します。OffsetDateTime
plusWeeks(long weeks)
指定された週数を加算して、このOffsetDateTimeのコピーを返します。OffsetDateTime
plusYears(long years)
指定された年数を加算して、このOffsetDateTime
のコピーを返します。<R> R
query(TemporalQuery<R> query)
指定された問合せを使用してこの日付/時間を問い合わせます。ValueRange
range(TemporalField field)
指定されたフィールドの有効な値の範囲を取得します。static Comparator<OffsetDateTime>
timeLineOrder()
そのインスタントにのみ基づいて2つのOffsetDateTime
インスタンスを比較するコンパレータを取得します。long
toEpochSecond()
この日付/時間を、エポック(1970-01-01T00:00:00Z)からの秒数に変換します。Instant
toInstant()
この日付/時間をInstant
に変換します。LocalDate
toLocalDate()
この日付/時間のLocalDate
部分を取得します。LocalDateTime
toLocalDateTime()
この日付/時間のLocalDateTime
部分を取得します。LocalTime
toLocalTime()
この日付/時間のLocalTime
部分を取得します。OffsetTime
toOffsetTime()
この日付/時間をOffsetTime
に変換します。String
toString()
この日付/時間をString
として出力します(2007-12-03T10:15:30+01:00
など)。ZonedDateTime
toZonedDateTime()
オフセットをゾーンIDとして使用して、この日付/時間をZonedDateTime
に変換します。OffsetDateTime
truncatedTo(TemporalUnit unit)
時間が切り捨てられた、このOffsetDateTime
のコピーを返します。long
until(Temporal endExclusive, TemporalUnit unit)
もう一方の日付/時間までの時間量を指定された単位で計算します。OffsetDateTime
with(TemporalAdjuster adjuster)
この日付/時間の調整済のコピーを返します。OffsetDateTime
with(TemporalField field, long newValue)
指定されたフィールドを新しい値に設定して、この日付/時間のコピーを返します。OffsetDateTime
withDayOfMonth(int dayOfMonth)
「月の日」を変更して、このOffsetDateTime
のコピーを返します。OffsetDateTime
withDayOfYear(int dayOfYear)
「年の日」を変更して、このOffsetDateTime
のコピーを返します。OffsetDateTime
withHour(int hour)
時の値を変更して、このOffsetDateTime
のコピーを返します。OffsetDateTime
withMinute(int minute)
分の値を変更して、このOffsetDateTime
のコピーを返します。OffsetDateTime
withMonth(int month)
月を変更して、このOffsetDateTime
のコピーを返します。OffsetDateTime
withNano(int nanoOfSecond)
ナノ秒の値を変更して、このOffsetDateTime
のコピーを返します。OffsetDateTime
withOffsetSameInstant(ZoneOffset offset)
結果が同じインスタントを持つようにしながら、指定されたオフセットを使って、このOffsetDateTime
のコピーを返します。OffsetDateTime
withOffsetSameLocal(ZoneOffset offset)
結果がローカル日付/時間を持つようにしながら、指定されたオフセットを使って、このOffsetDateTime
のコピーを返します。OffsetDateTime
withSecond(int second)
秒の値を変更して、このOffsetDateTime
のコピーを返します。OffsetDateTime
withYear(int year)
年を変更して、このOffsetDateTime
のコピーを返します。
-
-
-
フィールドの詳細
-
MIN
public static final OffsetDateTime MIN
サポートされている最小のOffsetDateTime
である「-999999999-01-01T00:00:00+18:00」。 これは、最大オフセット(オフセットが大きくなるほど、時系列上では早くなる)での最小日付の開始時の午前零時のローカル日付/時間です。 これは、LocalDateTime.MIN
とZoneOffset.MAX
を組み合せます。 これは、アプリケーションによって「遠い過去」の日付/時間として使用されることがあります。
-
MAX
public static final OffsetDateTime MAX
サポートされている最大のOffsetDateTime
である「+999999999-12-31T23:59:59.999999999-18:00」。 これは、最小オフセット(負のオフセットが大きくなるほど、時系列上では遅くなる)での最大日付の終わりの午前零時直前のローカル日付/時間です。 これは、LocalDateTime.MAX
とZoneOffset.MIN
を組み合せます。 これは、アプリケーションによって「遠い将来」の日付/時間として使用されることがあります。
-
-
メソッドの詳細
-
timeLineOrder
public static Comparator<OffsetDateTime> timeLineOrder()
そのインスタントにのみ基づいて2つのOffsetDateTime
インスタンスを比較するコンパレータを取得します。このメソッドは、ベースとなるインスタントのみを比較するという点で、
compareTo(java.time.OffsetDateTime)
での比較とは異なります。- 戻り値:
- 時系列順に比較するコンパレータ
- 関連項目:
isAfter(java.time.OffsetDateTime)
,isBefore(java.time.OffsetDateTime)
,isEqual(java.time.OffsetDateTime)
-
now
public static OffsetDateTime now()
デフォルトのタイムゾーンのシステム・クロックから現在の日付/時間を取得します。これは、デフォルトのタイムゾーンの
システム・クロック
を問い合せて、現在の日付/時間を取得します。 オフセットは、そのクロックのタイムゾーンから計算されます。このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
- 戻り値:
- システム・クロックを使用する現在の日付/時間。null以外
-
now
public static OffsetDateTime now(ZoneId zone)
指定されたタイムゾーンのシステム・クロックから現在の日付/時間を取得します。これは、
システム・クロック
を問い合せて現在の日付/時間を取得します。 タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。 オフセットは、指定されたタイムゾーンから計算されます。このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
- パラメータ:
zone
- 使用するゾーンID、null以外- 戻り値:
- システム・クロックを使用する現在の日付/時間。null以外
-
now
public static OffsetDateTime now(Clock clock)
指定されたクロックから現在の日付/時間を取得します。これは、指定されたクロックを問い合せて現在の日付/時間を取得します。 オフセットは、そのクロックのタイムゾーンから計算されます。
このメソッドを使用すると、テストに代替のクロックを使用できます。 代替のクロックは
dependency injection
を使用して導入できます。- パラメータ:
clock
- 使用するクロック、null以外- 戻り値:
- 現在の日付/時間。null以外
-
of
public static OffsetDateTime of(LocalDate date, LocalTime time, ZoneOffset offset)
日付、時間、およびオフセットからOffsetDateTime
のインスタンスを取得します。これは、指定されたローカルの日付、時間、およびオフセットを使用してオフセット日付/時間を作成します。
- パラメータ:
date
- ローカル日付。null以外time
- ローカル時間。null以外offset
- ゾーンオフセット。null以外- 戻り値:
- オフセット日付/時間。null以外
-
of
public static OffsetDateTime of(LocalDateTime dateTime, ZoneOffset offset)
日付/時間およびオフセットからOffsetDateTime
のインスタンスを取得します。これは、指定されたローカル日付/時間およびオフセットを使用してオフセット日付/時間を作成します。
- パラメータ:
dateTime
- ローカル日付/時間。null以外offset
- ゾーンオフセット。null以外- 戻り値:
- オフセット日付/時間。null以外
-
of
public static OffsetDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
年、月、日、時、分、秒、ナノ秒、およびオフセットからOffsetDateTime
のインスタンスを取得します。これは、7つの指定されたフィールドを使用してオフセット日付/時間を作成します。
このメソッドは、主としてテスト・ケースを作成するために存在しています。 テスト・コード以外では通常、別のメソッドを使ってオフセット時間を作成します。
LocalDateTime
には、より少ない引数を取る、同等のファクトリ・メソッドの簡易バリアントが他に5つあります。 APIのサイズを減らすため、それらについてはここでは説明しません。- パラメータ:
year
- 表す年(MIN_YEARからMAX_YEARまで)month
- 表される月。1(1月)-12(12月)dayOfMonth
- 表される「月の日」(1-31)hour
- 表される時(0-23)minute
- 表される分(0-59)second
- 表される秒(0-59)nanoOfSecond
- 表現する「1秒のうちのナノ秒」、0から999,999,999offset
- ゾーンオフセット。null以外- 戻り値:
- オフセット日付/時間。null以外
- 例外:
DateTimeException
- いずれかのフィールドの値が範囲外である場合、または「月の日」が年の月に対して無効である場合
-
ofInstant
public static OffsetDateTime ofInstant(Instant instant, ZoneId zone)
Instant
およびゾーンIDからOffsetDateTime
のインスタンスを取得します。これは、指定されたのと同じインスタントを使ってオフセット日付/時間を作成します。 インスタントごとに有効なオフセットは1つしかないため、UTC/グリニッジからのオフセットを見つけるのは簡単です。
- パラメータ:
instant
- 日付/時間の作成元のインスタント、null以外zone
- タイムゾーン。オフセットの場合もある。null以外- 戻り値:
- オフセット日付/時間。null以外
- 例外:
DateTimeException
- 結果がサポートされている範囲を超える場合
-
from
public static OffsetDateTime from(TemporalAccessor temporal)
時間的オブジェクトからOffsetDateTime
のインスタンスを取得します。これは、指定された時間的オブジェクトに基づいてオフセット日付/時間を取得します。
TemporalAccessor
は任意の日付と時間のセットに関する情報を表し、それがこのファクトリでOffsetDateTime
のインスタンスに変換されます。この変換ではまず、時間的オブジェクトから
ZoneOffset
を取得します。 次に、LocalDateTime
の取得を試み、必要に応じてInstant
にフォールバックします。 結果は、ZoneOffset
と、LocalDateTime
またはInstant
のどちらかとの組合せになります。 実装では、関連オブジェクトと同等のそれらのフィールドにアクセスするなどの最適化を実行することが許可されます。このメソッドは関数型インタフェース
TemporalQuery
のシグネチャに一致するため、メソッド参照OffsetDateTime::from
を介して、問合せとして使用できます。- パラメータ:
temporal
- 変換する一時オブジェクト、null以外- 戻り値:
- オフセット日付/時間。null以外
- 例外:
DateTimeException
-OffsetDateTime
に変換できない場合
-
parse
public static OffsetDateTime parse(CharSequence text)
2007-12-03T10:15:30+01:00
などのテキスト文字列からOffsetDateTime
のインスタンスを取得します。この文字列は有効な日付/時間を表している必要があり、
DateTimeFormatter.ISO_OFFSET_DATE_TIME
を使って解析されます。- パラメータ:
text
- 「2007-12-03T10:15:30+01:00」などの解析対象のテキスト。null以外- 戻り値:
- 解析されたオフセット日付/時間。null以外
- 例外:
DateTimeParseException
- テキストが解析できない場合
-
parse
public static OffsetDateTime parse(CharSequence text, DateTimeFormatter formatter)
特定のフォーマッタを使用して、テキスト文字列からOffsetDateTime
のインスタンスを取得します。そのテキストがフォーマッタを使って解析され、日付/時間が返されます。
- パラメータ:
text
- 解析するテキスト。null以外formatter
- 使用するフォーマッタ、null以外- 戻り値:
- 解析されたオフセット日付/時間。null以外
- 例外:
DateTimeParseException
- テキストが解析できない場合
-
isSupported
public boolean isSupported(TemporalField field)
指定されたフィールドがサポートされているかどうかをチェックします。これは、指定されたフィールドをこの日付/時間に問い合せることができるかどうかを確認します。 falseの場合、
range
、get
、およびwith(TemporalField, long)
メソッドの呼び出しは、例外をスローします。フィールドが
ChronoField
の場合、ここに問合せを実装します。 サポートされるフィールドは、次のとおりです。NANO_OF_SECOND
NANO_OF_DAY
MICRO_OF_SECOND
MICRO_OF_DAY
MILLI_OF_SECOND
MILLI_OF_DAY
SECOND_OF_MINUTE
SECOND_OF_DAY
MINUTE_OF_HOUR
MINUTE_OF_DAY
HOUR_OF_AMPM
CLOCK_HOUR_OF_AMPM
HOUR_OF_DAY
CLOCK_HOUR_OF_DAY
AMPM_OF_DAY
DAY_OF_WEEK
ALIGNED_DAY_OF_WEEK_IN_MONTH
ALIGNED_DAY_OF_WEEK_IN_YEAR
DAY_OF_MONTH
DAY_OF_YEAR
EPOCH_DAY
ALIGNED_WEEK_OF_MONTH
ALIGNED_WEEK_OF_YEAR
MONTH_OF_YEAR
PROLEPTIC_MONTH
YEAR_OF_ERA
YEAR
ERA
INSTANT_SECONDS
OFFSET_SECONDS
ChronoField
インスタンスはfalseを返します。フィールドが
ChronoField
でない場合、このメソッドの結果は、this
を引数として渡してTemporalField.isSupportedBy(TemporalAccessor)
を呼び出すことによって取得します。 フィールドがサポートされているかどうかはフィールドによって決定します。- 定義:
- インタフェース
TemporalAccessor
のisSupported
- パラメータ:
field
- チェックするフィールド、nullはfalseを返す- 戻り値:
- フィールドがこの日付/時間でサポートされている場合はtrue、サポートされていない場合はfalse
-
isSupported
public boolean isSupported(TemporalUnit unit)
指定された単位がサポートされているかどうかをチェックします。これは、指定された単位をこの日付/時間に対して加算または減算できるかどうかをチェックします。 falseの場合、
plus(long, TemporalUnit)
およびminus
メソッドの呼び出しは、例外をスローします。単位が
ChronoUnit
の場合、問合せはここで実装されます。 サポートされる単位は次のとおりです。NANOS
MICROS
MILLIS
SECONDS
MINUTES
HOURS
HALF_DAYS
DAYS
WEEKS
MONTHS
YEARS
DECADES
CENTURIES
MILLENNIA
ERAS
ChronoUnit
インスタンスはfalseを返します。単位が
ChronoUnit
でない場合、このメソッドの結果は、this
を引数として渡してTemporalUnit.isSupportedBy(Temporal)
を呼び出すことによって取得します。 単位がサポートされているかどうかは単位によって決定します。- 定義:
- インタフェース
Temporal
のisSupported
- パラメータ:
unit
- チェックする単位、nullはfalseを返す- 戻り値:
- 単位を加算/減算できる場合はtrue、できない場合はfalse
-
range
public ValueRange range(TemporalField field)
指定されたフィールドの有効な値の範囲を取得します。範囲オブジェクトはフィールドの有効な最小値と最大値を表します。 この日付/時間は、返される範囲の精度を高めるために使用されます。 範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoField
の場合、ここに問合せを実装します。サポートされるフィールド
は適切な範囲のインスタンスを返します。 他のすべてのChronoField
インスタンスはUnsupportedTemporalTypeException
をスローします。フィールドが
ChronoField
ではない場合、このメソッドの結果は、引数としてthis
を渡してTemporalField.rangeRefinedBy(TemporalAccessor)
を呼び出すことにより取得されます。 範囲を取得できるかどうかはフィールドによって決まります。- 定義:
- インタフェース
TemporalAccessor
のrange
- パラメータ:
field
- 範囲を問い合わせるフィールド、null以外- 戻り値:
- フィールドの有効値の範囲。null以外
- 例外:
DateTimeException
- フィールドの範囲を取得できない場合UnsupportedTemporalTypeException
- フィールドがサポートされていない場合
-
get
public int get(TemporalField field)
指定されたフィールドの値をこの日付/時間からint
として取得します。これは、指定されたフィールドの値についてこの日付/時間に問い合せます。 返される値は常にフィールドの値の有効な範囲内になります。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoField
の場合、ここに問合せを実装します。supported fields
は、NANO_OF_DAY
、MICRO_OF_DAY
、EPOCH_DAY
、PROLEPTIC_MONTH
およびINSTANT_SECONDS
を除いて、この日時に基づいて有効な値を返します。int
にフィットするには大きすぎ、UnsupportedTemporalTypeException
をスローします。 他のすべてのChronoField
インスタンスはUnsupportedTemporalTypeException
をスローします。フィールドが
ChronoField
ではない場合、このメソッドの結果は、引数としてthis
を渡してTemporalField.getFrom(TemporalAccessor)
を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェース
TemporalAccessor
のget
- パラメータ:
field
- 取得するフィールド、null以外- 戻り値:
- フィールドの値
- 例外:
DateTimeException
- フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合UnsupportedTemporalTypeException
- フィールドがサポートされていない場合、または値の範囲がint
を超えている場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
getLong
public long getLong(TemporalField field)
指定されたフィールドの値をこの日付/時間からlong
として取得します。これは、指定されたフィールドの値についてこの日付/時間に問い合せます。 値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドが
ChronoField
の場合、ここに問合せを実装します。サポートされるフィールド
は、この日付/時間に基づく有効な値を返します。 他のすべてのChronoField
インスタンスはUnsupportedTemporalTypeException
をスローします。フィールドが
ChronoField
ではない場合、このメソッドの結果は、引数としてthis
を渡してTemporalField.getFrom(TemporalAccessor)
を呼び出すことにより取得されます。 値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。- 定義:
- インタフェース
TemporalAccessor
のgetLong
- パラメータ:
field
- 取得するフィールド、null以外- 戻り値:
- フィールドの値
- 例外:
DateTimeException
- フィールドの値を取得できない場合UnsupportedTemporalTypeException
- フィールドがサポートされていない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
getOffset
public ZoneOffset getOffset()
「+01:00」などのゾーン・オフセットを取得します。これはUTC/グリニッジからのローカル日付/時間のオフセットです。
- 戻り値:
- ゾーン・オフセット、null以外
-
withOffsetSameLocal
public OffsetDateTime withOffsetSameLocal(ZoneOffset offset)
結果がローカル日付/時間を持つようにしながら、指定されたオフセットを使って、このOffsetDateTime
のコピーを返します。このメソッドは、同じ
LocalDateTime
および指定されたZoneOffset
を使ってオブジェクトを返します。 必要な計算や行われる計算はありません。 たとえば、この時間が2007-12-03T10:30+02:00
を表し、指定されたオフセットが+03:00
の場合、このメソッドは2007-12-03T10:30+03:00
を返します。それらのオフセット間の差異を考慮に入れて、時間フィールドを調整するには、
withOffsetSameInstant(java.time.ZoneOffset)
を使用します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
offset
- 変更後のゾーンオフセット。null以外- 戻り値:
- リクエストされたオフセットを含む、この日付/時間に基づいた
OffsetDateTime
。null以外
-
withOffsetSameInstant
public OffsetDateTime withOffsetSameInstant(ZoneOffset offset)
結果が同じインスタントを持つようにしながら、指定されたオフセットを使って、このOffsetDateTime
のコピーを返します。このメソッドは、指定された
ZoneOffset
およびLocalDateTime
を2つのオフセット間の差異によって調整してオブジェクトを返します。 これによって、同じインスタントを表す古いオブジェクトと新しいオブジェクトが生成されます。 これは、ローカル時間を異なるオフセットで検索する場合に役立ちます。 たとえば、この時間が2007-12-03T10:30+02:00
を表し、指定されたオフセットが+03:00
の場合、このメソッドは2007-12-03T11:30+03:00
を返します。ローカル時間を調整しないでオフセットを変更するには、
withOffsetSameLocal(java.time.ZoneOffset)
を使用します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
offset
- 変更後のゾーンオフセット。null以外- 戻り値:
- リクエストされたオフセットを含む、この日付/時間に基づいた
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
toLocalDateTime
public LocalDateTime toLocalDateTime()
この日付/時間のLocalDateTime
部分を取得します。これは、この日付/時間と同じ年、月、日、および時間を使って
LocalDateTime
を返します。- 戻り値:
- この日付/時間のローカル日付/時間部分、null以外
-
toLocalDate
public LocalDate toLocalDate()
この日付/時間のLocalDate
部分を取得します。これは、この日付/時間と同じ年、月、および日を使って
LocalDate
を返します。- 戻り値:
- 日付/時間の日付部分、null以外
-
getYear
public int getYear()
年フィールドを取得します。このメソッドは、年を表すプリミティブな
int
値を返します。このメソッドで返される年は、
get(YEAR)
のように予期的なものです。 紀元年を取得するには、get(YEAR_OF_ERA)
を使用します。- 戻り値:
- 年。MIN_YEARからMAX_YEARまで
-
getMonthValue
public int getMonthValue()
月フィールドを取得します(1-12)。このメソッドは、月を1-12の
int
として返します。getMonth()
を呼び出すことで列挙型Month
が使用される場合は、アプリケーション・コードがより明確になることが多くなります。- 戻り値:
- 月(1-12)
- 関連項目:
getMonth()
-
getMonth
public Month getMonth()
列挙型Month
を使用して、月フィールドを取得します。このメソッドは、月を表す列挙型
Month
を返します。 これによって、int
値が意味する内容に関する混乱を回避できます。 プリミティブなint
値にアクセスする必要がある場合、この列挙型はint値
を提供します。- 戻り値:
- 月。null以外
- 関連項目:
getMonthValue()
-
getDayOfMonth
public int getDayOfMonth()
「月の日」フィールドを取得します。このメソッドは、「月の日」を表すプリミティブな
int
値を返します。- 戻り値:
- 「月の日」(1-31)
-
getDayOfYear
public int getDayOfYear()
「年の日」フィールドを取得します。このメソッドは、「年の日」を表すプリミティブな
int
値を返します。- 戻り値:
- 「年の日」。1-365または1-366(うるう年の場合)
-
getDayOfWeek
public DayOfWeek getDayOfWeek()
列挙型DayOfWeek
である曜日フィールドを取得します。このメソッドは、曜日を表す列挙型
DayOfWeek
を返します。 これによって、int
値が意味する内容に関する混乱を回避できます。 プリミティブなint
値にアクセスする必要がある場合、この列挙型はint値
を提供します。DayOfWeek
からは追加情報を取得できます。 具体的には、それらの値のテキスト名などがあります。- 戻り値:
- 曜日、null以外
-
toLocalTime
public LocalTime toLocalTime()
この日付/時間のLocalTime
部分を取得します。これは、この日付/時間と同じ時、分、秒、およびナノ秒を使って
LocalTime
を返します。- 戻り値:
- 日付/時間の時間部分、null以外
-
getHour
public int getHour()
時フィールドを取得します。- 戻り値:
- 時(0-23)
-
getMinute
public int getMinute()
分フィールドを取得します。- 戻り値:
- 分(0-59)
-
getSecond
public int getSecond()
秒フィールドを取得します。- 戻り値:
- 秒(0-59)
-
getNano
public int getNano()
ナノ秒フィールドを取得します。- 戻り値:
- ナノ秒(0-999,999,999)
-
with
public OffsetDateTime with(TemporalAdjuster adjuster)
この日付/時間の調整済のコピーを返します。これは、日付/時間を調整して、この日付/時間に基づく
OffsetDateTime
を返します。 調整は、指定されたアジャスタ戦略オブジェクトを使用して行われます。 どのような調整が行われるかを理解するには、アジャスタのドキュメントを参照してください。単純なアジャスタは、年フィールドなどの1つのフィールドだけを設定するなどです。 複雑なアジャスタは、日付を月の最後の日に設定するなどです。 一般的な調整の選択は、
TemporalAdjusters
で指定します。 これらには、「月の最後の日」や「次の水曜日」を見つけることが含まれます。 主要な日付/時間クラス(Month
やMonthDay
など)も、TemporalAdjuster
インタフェースを実装します。 アジャスタは、さまざまな長さの月やうるう年などの特別なケースの処理を担当します。たとえば、このコードでは7月の最後の日の日付を返します。
import static java.time.Month.*; import static java.time.temporal.TemporalAdjusters.*; result = offsetDateTime.with(JULY).with(lastDayOfMonth());
クラス
LocalDate
、LocalTime
、およびZoneOffset
はTemporalAdjuster
を実装するため、このメソッドを使用すると、日付、時間、またはオフセットを変更できます。result = offsetDateTime.with(date); result = offsetDateTime.with(time); result = offsetDateTime.with(offset);
このメソッドの結果は、指定されたアジャスタで
this
を引数として渡してTemporalAdjuster.adjustInto(Temporal)
メソッドを呼び出すことによって取得されます。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporal
のwith
- パラメータ:
adjuster
- 使用するアジャスタ、null以外- 戻り値:
- 調整が行われた、
これ
に基づくOffsetDateTime
。null以外 - 例外:
DateTimeException
- 調整ができない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
with
public OffsetDateTime with(TemporalField field, long newValue)
指定されたフィールドを新しい値に設定して、この日付/時間のコピーを返します。これは、指定されたフィールドの値を変更して、この時間に基づき、
OffsetDateTime
を返します。 これを使用すると、年、月、「月の日」などのサポートされているフィールドを変更できます。 値を設定できない場合は、フィールドがサポートされていないか他の理由のために、例外がスローされます。場合によっては、指定されたフィールドを変更すると、結果となる日付/時間が無効になることがあります(1月31日の月を2月に変更すると、「月の日」が無効になるなど)。 このような場合、そのフィールドは日付の解決を行います。 通常は1つ前の有効な日付が選択され、この例の場合は2月の最後の有効な日になります。
フィールドが
ChronoField
の場合は、調整はここで実装されます。INSTANT_SECONDS
フィールドは、指定されたインスタントを使って日付/時間を返します。 オフセットおよびナノ秒は変更されません。 新しいインスタント値が有効な範囲外にある場合は、DateTimeException
がスローされます。OFFSET_SECONDS
フィールドは、指定されたオフセットを使って日付/時間を返します。 ローカル日付/時間は変更されません。 新しいオフセット値が有効な範囲外にある場合は、DateTimeException
がスローされます。その他の
サポートされているフィールド
は、LocalDateTime
上の一致するメソッドのとおりに動作します。 この場合、オフセットは計算の一部ではないため、変更されません。他のすべての
ChronoField
インスタンスはUnsupportedTemporalTypeException
をスローします。フィールドが
ChronoField
ではない場合、このメソッドの結果は、this
を引数として渡してTemporalField.adjustInto(Temporal, long)
を呼び出すことによって取得されます。 この場合、インスタントを調整するかどうかおよびどのように調整するかはフィールドによって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporal
のwith
- パラメータ:
field
- 結果に設定するフィールド、null以外newValue
- 結果のフィールドの新しい値- 戻り値:
- 指定されたフィールドが設定された、
これ
に基づくOffsetDateTime
。null以外 - 例外:
DateTimeException
- フィールドを設定できない場合UnsupportedTemporalTypeException
- フィールドがサポートされていない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
withYear
public OffsetDateTime withYear(int year)
年を変更して、このOffsetDateTime
のコピーを返します。この時間とオフセットは計算に影響を及ぼさないため、結果でも同じになります。 その「月の日」がその年に対して無効である場合は、その月の最後の有効な日に変更されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
year
- 結果に設定される年(MIN_YEARからMAX_YEARまで)- 戻り値:
- リクエストされた年を含む、この日付/時間に基づいた
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 年の値が無効である場合
-
withMonth
public OffsetDateTime withMonth(int month)
月を変更して、このOffsetDateTime
のコピーを返します。この時間とオフセットは計算に影響を及ぼさないため、結果でも同じになります。 その「月の日」がその年に対して無効である場合は、その月の最後の有効な日に変更されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
month
- 結果に設定される月。1(1月)-12(12月)- 戻り値:
- リクエストされた月を含む、この日付/時間に基づいた
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 月の値が無効である場合
-
withDayOfMonth
public OffsetDateTime withDayOfMonth(int dayOfMonth)
「月の日」を変更して、このOffsetDateTime
のコピーを返します。結果となる
OffsetDateTime
が無効である場合は、例外がスローされます。 この時間とオフセットは計算に影響を及ぼさないため、結果でも同じになります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
dayOfMonth
- 結果に設定される「月の日」。1から28-31まで- 戻り値:
- リクエストされた日を含む、この日付/時間に基づいた
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 「月の日」の値が無効である場合、または「月の日」がその月-年に対して無効である場合
-
withDayOfYear
public OffsetDateTime withDayOfYear(int dayOfYear)
「年の日」を変更して、このOffsetDateTime
のコピーを返します。この時間とオフセットは計算に影響を及ぼさないため、結果でも同じになります。 結果となる
OffsetDateTime
が無効である場合は、例外がスローされます。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
dayOfYear
- 結果に設定される「年の日」。1から365-366まで- 戻り値:
- リクエストされた日を含む、この日付に基づいた
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 「年の日」の値が無効である場合、または「年の日」がその年に対して無効である場合
-
withHour
public OffsetDateTime withHour(int hour)
時の値を変更して、このOffsetDateTime
のコピーを返します。日付とオフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
hour
- 結果に設定される時(0-23)- 戻り値:
- リクエストされた時を含む、この日付/時間に基づいた
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 時の値が無効である場合
-
withMinute
public OffsetDateTime withMinute(int minute)
分の値を変更して、このOffsetDateTime
のコピーを返します。日付とオフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
minute
- 結果に設定される分(0-59)- 戻り値:
- リクエストされた分を含む、この日付/時間に基づいた
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 分の値が無効である場合
-
withSecond
public OffsetDateTime withSecond(int second)
秒の値を変更して、このOffsetDateTime
のコピーを返します。日付とオフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
second
- 結果に設定される秒(0-59)- 戻り値:
- リクエストされた秒を含む、この日付/時間に基づいた
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 秒の値が無効である場合
-
withNano
public OffsetDateTime withNano(int nanoOfSecond)
ナノ秒の値を変更して、このOffsetDateTime
のコピーを返します。日付とオフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
nanoOfSecond
- 結果に設定されるナノ秒(0-999,999,999)- 戻り値:
- リクエストされたナノ秒を含む、この日付/時間に基づいた
OffsetDateTime
。null以外 - 例外:
DateTimeException
- ナノ秒の値が無効である場合
-
truncatedTo
public OffsetDateTime truncatedTo(TemporalUnit unit)
時間が切り捨てられた、このOffsetDateTime
のコピーを返します。切り詰めでは、指定された単位よりも小さいフィールドをゼロに設定して、元の日付/時間のコピーを返します。 たとえば、
分
単位で切り詰めると、秒およびナノ秒フィールドはゼロに設定されます。単位は、標準日の長さを余りなしで等分するデュレーションを持つ必要があります。 これには、
ChronoUnit
とDAYS
で提供されるすべての時間単位が含まれます。 他の単位は例外をスローします。オフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
unit
- 切り捨てを行う単位、nullでない- 戻り値:
- 時間が切り捨てられた、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 切り捨てられない場合UnsupportedTemporalTypeException
- 単位がサポートされていない場合
-
plus
public OffsetDateTime plus(TemporalAmount amountToAdd)
この日時のコピーに指定された時間を追加したものを返します。これは、指定された量を加算して、この日付/時間に基づく
OffsetDateTime
を返します。 この量は通常Period
またはDuration
ですが、TemporalAmount
インタフェースを実装する他のどの型であってもかまいません。計算は、
TemporalAmount.addTo(Temporal)
を呼び出すことによって量オブジェクトに委譲されます。 量実装は加算を任意の方法で自由に実装できますが、通常はplus(long, TemporalUnit)
にコールバックします。 正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporal
のplus
- パラメータ:
amountToAdd
- 加算する量、nullでない- 戻り値:
- 加算が行われた、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 加算できない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
plus
public OffsetDateTime plus(long amountToAdd, TemporalUnit unit)
この日時のコピーに指定された時間を追加したものを返します。これは、その単位での量を加算して、この日付/時間に基づく
OffsetDateTime
を返します。 量を加算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。フィールドが
ChronoUnit
である場合は、LocalDateTime.plus(long, TemporalUnit)
によって加算が実装されます。 オフセットは計算の一部ではないため、結果でも変わりません。フィールドが
ChronoUnit
でない場合、このメソッドの結果は、this
を引数として渡してTemporalUnit.addTo(Temporal, long)
を呼び出すことによって取得されます。 この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporal
のplus
- パラメータ:
amountToAdd
- 結果に加算する単位の量、負も可unit
- 加算する量の単位、nullでない- 戻り値:
- 指定された量が加算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 加算できない場合UnsupportedTemporalTypeException
- 単位がサポートされていない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
plusYears
public OffsetDateTime plusYears(long years)
指定された年数を加算して、このOffsetDateTime
のコピーを返します。このメソッドは、3つのステップで、指定された量を年フィールドに加算します。
- 入力された年数を年フィールドに加算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2008-02-29 (うるう年)に1年を加算すると、2009-02-29(標準の年)という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2009-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
years
- 加算する年数。負の値の場合もある- 戻り値:
- その年数が加算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
plusMonths
public OffsetDateTime plusMonths(long months)
指定された月数を加算して、このOffsetDateTime
のコピーを返します。このメソッドは、3つのステップで、指定された量を月フィールドに加算します。
- 入力された月数を、月フィールドに加算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2007-03-31に1月を加算すると、2007-04-31という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2007-04-30が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
months
- 加算する月数。負の値の場合もある- 戻り値:
- その月数が加算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
plusWeeks
public OffsetDateTime plusWeeks(long weeks)
指定された週数を加算して、このOffsetDateTimeのコピーを返します。このメソッドは、指定された週単位の量を日フィールドに加算し、結果が有効のままであるように、必要に応じて月および年フィールドを増分します。 この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2008-12-31に1週間を加算すると、2009-01-07という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
weeks
- 加算する週数。負の値の場合もある- 戻り値:
- その週数が加算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
plusDays
public OffsetDateTime plusDays(long days)
指定された日数を加算して、このOffsetDateTimeのコピーを返します。このメソッドは、指定された量を日フィールドに加算し、結果が有効のままであるように、必要に応じて月および年フィールドを増分します。 この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2008-12-31に1日を加算すると、2009-01-01という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
days
- 加算する日数。負の値の場合もある- 戻り値:
- その日数が加算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
plusHours
public OffsetDateTime plusHours(long hours)
指定された時間数を加算して、このOffsetDateTime
のコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
hours
- 加算する時間数。負の値の場合もある- 戻り値:
- その時間数が加算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
plusMinutes
public OffsetDateTime plusMinutes(long minutes)
指定された分数を加算して、このOffsetDateTime
のコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
minutes
- 加算する分数。負の値の場合もある- 戻り値:
- その分数が加算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
plusSeconds
public OffsetDateTime plusSeconds(long seconds)
指定された秒数を加算して、このOffsetDateTime
のコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
seconds
- 加算する秒数。負の値の場合もある- 戻り値:
- その秒数が加算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
plusNanos
public OffsetDateTime plusNanos(long nanos)
指定されたナノ秒数を加算して、このOffsetDateTime
のコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
nanos
- 加算するナノ秒数。負の値の場合もある- 戻り値:
- そのナノ秒数が加算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- その単位をこの型に追加できない場合
-
minus
public OffsetDateTime minus(TemporalAmount amountToSubtract)
指定された量を減算した、この日付/時間のコピーを返します。これは、指定された量を減算して、この日付/時間に基づく
OffsetDateTime
を返します。 この量は通常Period
またはDuration
ですが、TemporalAmount
インタフェースを実装する他のどの型であってもかまいません。計算は、
TemporalAmount.subtractFrom(Temporal)
を呼び出すことによって量オブジェクトに委譲されます。 量実装は減算を任意の方法で自由に実装できますが、通常はminus(long, TemporalUnit)
にコールバックします。 正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporal
のminus
- パラメータ:
amountToSubtract
- 減算する量、nullでない- 戻り値:
- 減算が行われた、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 減算ができない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
minus
public OffsetDateTime minus(long amountToSubtract, TemporalUnit unit)
指定された量を減算した、この日付/時間のコピーを返します。これは、その単位での量を減算して、この日付/時間に基づく
OffsetDateTime
を返します。 量を減算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。このメソッドは、量を符号反転した
plus(long, TemporalUnit)
と同等です。 加算および減算がどのように行われるかについての詳しい説明は、そのメソッドを参照してください。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporal
のminus
- パラメータ:
amountToSubtract
- 結果から減算する単位の量、負も可unit
- 減算する量の単位、nullでない- 戻り値:
- 指定された量が減算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 減算ができない場合UnsupportedTemporalTypeException
- 単位がサポートされていない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
minusYears
public OffsetDateTime minusYears(long years)
指定された年数を減算して、このOffsetDateTime
のコピーを返します。このメソッドは、3つのステップで、指定された量を年フィールドから減算します。
- 入力された年数を年フィールドから減算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2008-02-29 (うるう年)から1年を減算すると、2007-02-29(標準の年)という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2007-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
years
- 減算する年数。負の値の場合もある- 戻り値:
- その年数が減算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
minusMonths
public OffsetDateTime minusMonths(long months)
指定された月数を減算して、このOffsetDateTime
のコピーを返します。このメソッドは、3つのステップで、指定された量を月フィールドから減算します。
- 入力された月数を、年の何月かを表すフィールドから減算します
- 結果となる日付が無効になるかどうかをチェックします
- 必要に応じて、「月の日」を最後の有効な日に調整します
たとえば、2007-03-31から1月を減算すると、2007-02-31という無効な日付が生じます。 無効な結果を返す代わりに、その月の最後の有効な日である2007-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
months
- 減算する月数。負の値の場合もある- 戻り値:
- その月数が減算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
minusWeeks
public OffsetDateTime minusWeeks(long weeks)
指定された週数を減算して、このOffsetDateTime
のコピーを返します。このメソッドは、指定された週単位の量を日フィールドから減算し、結果が有効のままであるように、必要に応じて月および年フィールドを減らします。 この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2009-01-07から1週間を減算すると、2008-12-31という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
weeks
- 減算する週数。負の値の場合もある- 戻り値:
- その週数が減算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
minusDays
public OffsetDateTime minusDays(long days)
指定された日数を減算して、このOffsetDateTime
のコピーを返します。このメソッドは、指定された量を日フィールドから減算し、結果が有効のままであるように、必要に応じて月および年フィールドを減らします。 この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2009-01-01から1日を減算すると、2008-12-31という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
days
- 減算する日数。負の値の場合もある- 戻り値:
- その日数が減算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
minusHours
public OffsetDateTime minusHours(long hours)
指定された時間数を減算して、このOffsetDateTime
のコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
hours
- 減算する時間数。負の値の場合もある- 戻り値:
- その時間数が減算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
minusMinutes
public OffsetDateTime minusMinutes(long minutes)
指定された分数を減算して、このOffsetDateTime
のコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
minutes
- 減算する分数。負の値の場合もある- 戻り値:
- その分数が減算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
minusSeconds
public OffsetDateTime minusSeconds(long seconds)
指定された秒数を減算して、このOffsetDateTime
のコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
seconds
- 減算する秒数。負の値の場合もある- 戻り値:
- その秒数が減算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
minusNanos
public OffsetDateTime minusNanos(long nanos)
指定されたナノ秒数を減算して、このOffsetDateTime
のコピーを返します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- パラメータ:
nanos
- 減算するナノ秒数。負の値の場合もある- 戻り値:
- そのナノ秒数が減算された、この日付/時間に基づく
OffsetDateTime
。null以外 - 例外:
DateTimeException
- 結果がサポートされている日付範囲を超える場合
-
query
public <R> R query(TemporalQuery<R> query)
指定された問合せを使用してこの日付/時間を問い合わせます。これは指定された問合せ方法オブジェクトを使用してこの日付/時間を問い合わせます。
TemporalQuery
オブジェクトは結果を取得するために使用するロジックを定義します。 このメソッドの結果を理解するには、問合せのドキュメントをお読みください。このメソッドの結果は、
this
を引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)
メソッドを呼び出すことによって取得します。- 定義:
- インタフェース
TemporalAccessor
のquery
- 型パラメータ:
R
- 結果の型- パラメータ:
query
- 呼び出す問合せ、null以外- 戻り値:
- 問合せ結果、nullが返されることがある(問合せによって定義される)
- 例外:
DateTimeException
- 問い合わせできない場合(問合せによって定義される)ArithmeticException
- 数値のオーバーフローが発生した場合(問合せによって定義される)
-
adjustInto
public Temporal adjustInto(Temporal temporal)
指定された時間的オブジェクトを、このオブジェクトと同じオフセット、日付、および時間を持つように調整します。これは、オフセット、日付、および時間をこれと同じになるように変更して、入力と同じ識別可能な型の時間的オブジェクトを返します。
この調整は、
ChronoField.EPOCH_DAY
、ChronoField.NANO_OF_DAY
、およびChronoField.OFFSET_SECONDS
をフィールドとして渡してTemporal.with(TemporalField, long)
を3回使用することと同等です。ほとんどのケースで、
Temporal.with(TemporalAdjuster)
を使用して、呼び出しパターンを逆にすると明確になります。// these two lines are equivalent, but the second approach is recommended temporal = thisOffsetDateTime.adjustInto(temporal); temporal = temporal.with(thisOffsetDateTime);
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
TemporalAdjuster
のadjustInto
- パラメータ:
temporal
- 調整するターゲット・オブジェクト、null以外- 戻り値:
- 調整されるオブジェクト、null以外
- 例外:
DateTimeException
- 調整を実行できない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
until
public long until(Temporal endExclusive, TemporalUnit unit)
もう一方の日付/時間までの時間量を指定された単位で計算します。これは、1つの
TemporalUnit
を単位として、2つのOffsetDateTime
オブジェクト間の時間量を計算します。 始点と終点は、これ
と指定された日付/時間です。 終了が開始より前である場合、結果は負になります。 たとえば、2つの日付/時間の間の日数は、startDateTime.until(endDateTime, DAYS)
を使用して計算できます。このメソッドに渡された
Temporal
は、from(TemporalAccessor)
を使用してOffsetDateTime
に変換されます。 2つの日付/時間の間でオフセットが異なる場合は、指定された終了日付/時間がこの日付/時間と同じオフセットを持つように正規化されます。この計算では、2つの日付/時間の間の完全な単位の数を表す整数を返します。 たとえば、2012-06-15T00:00Zと2012-08-14T23:59Zの間の月数は、2か月には1分足りないため、1か月のみとなります。
このメソッドを使用する等価な方法が2つあります。 1つ目はこのメソッドを呼び出すことです。 2つ目は
TemporalUnit.between(Temporal, Temporal)
を使用することです。// these two lines are equivalent amount = start.until(end, MONTHS); amount = MONTHS.between(start, end);
この選択は、コードが読みやすくなるのはどちらかに基づいて行ってください。計算は
ChronoUnit
のこのメソッドに実装します。 サポートされている単位は、NANOS
、MICROS
、MILLIS
、SECONDS
、MINUTES
、HOURS
、HALF_DAYS
、DAYS
、WEEKS
、MONTHS
、YEARS
、DECADES
、CENTURIES
、MILLENNIA
、およびERAS
です。 その他のChronoUnit
値は例外をスローします。単位が
ChronoUnit
でない場合、このメソッドの結果は、this
を1つ目の引数として、変換される入力temporal (一時)を2つ目の引数として渡してTemporalUnit.between(Temporal, Temporal)
を呼び出すことによって取得します。このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
- 定義:
- インタフェース
Temporal
のuntil
- パラメータ:
endExclusive
-OffsetDateTime
に変換される終了日付(これを含まない)。null以外unit
- 量を測定する単位、null以外- 戻り値:
- この日付/時間から終了日付/時間までの時間量
- 例外:
DateTimeException
- その量を計算できないか、終了時間をOffsetDateTime
に変換できない場合UnsupportedTemporalTypeException
- 単位がサポートされていない場合ArithmeticException
- 数値のオーバーフローが発生した場合
-
format
public String format(DateTimeFormatter formatter)
指定されたフォーマッタを使用してこの日付/時間を書式設定します。この日付/時間はフォーマッタに渡され、文字列が生成されます。
- パラメータ:
formatter
- 使用するフォーマッタ、null以外- 戻り値:
- 書式設定済の日付/時間文字列、null以外
- 例外:
DateTimeException
- 出力時にエラーが発生した場合
-
atZoneSameInstant
public ZonedDateTime atZoneSameInstant(ZoneId zone)
結果に同じインスタントが含まれるようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTime
を作成します。これは、この日付/時間および指定されたタイムゾーンから形成された
ZonedDateTime
を返します。 この変換では、表示可能なローカル日付/時間を無視し、代わりにベースとなるインスタントを使用します。 これにより、ローカル時系列のギャップまたはオーバーラップの問題を回避できます。 結果では、時、分、日などのフィールドにさまざまな値が含まれる可能性があります。それらのフィールド値の保持を試みるには、
atZoneSimilarLocal(ZoneId)
を使用します。 オフセットをゾーンIDとして使用するには、toZonedDateTime()
を使用します。- パラメータ:
zone
- 使用するタイムゾーン、null以外- 戻り値:
- この日付/時間から形成されたゾーン付きの日付/時間、null以外
-
atZoneSimilarLocal
public ZonedDateTime atZoneSimilarLocal(ZoneId zone)
同じローカルの日付と時間を保持するようにしながら、この日付/時間をタイムゾーンと組み合わせてZonedDateTime
を作成します。これは、この日付/時間および指定されたタイムゾーンから形成された
ZonedDateTime
を返します。 可能な場合、結果にはこのオブジェクトと同じローカル日付/時間が含まれます。サマー・タイムなどのタイムゾーン・ルールは、ローカル時系列上のすべて時間が存在するとはかぎらないことを意味しています。 それらのルールに従ってローカル日付/時間がギャップまたはオーバーラップに存在する場合は、リゾルバを使って結果となるローカル時間およびオフセットが決められます。 このメソッドは、
ZonedDateTime.ofLocal(LocalDateTime, ZoneId, ZoneOffset)
を使用して、このインスタンスからのオフセットを保持します(可能な場合)。ギャップおよびオーバーラップのより細かい制御は2つの方法で用意されています。 オーバーラップ時に遅い方のオフセットを使用するだけの場合は、このメソッドの直後に
ZonedDateTime.withLaterOffsetAtOverlap()
を呼び出します。ローカル時系列に関係なく同じインスタントでゾーン付きの日付/時間を作成するには、
atZoneSameInstant(ZoneId)
を使用します。 オフセットをゾーンIDとして使用するには、toZonedDateTime()
を使用します。- パラメータ:
zone
- 使用するタイムゾーン、null以外- 戻り値:
- この日付と、そのゾーンでもっとも早い有効な時間から形成されたゾーン付きの日付/時間。null以外
-
toOffsetTime
public OffsetTime toOffsetTime()
この日付/時間をOffsetTime
に変換します。これは、同じローカル時間およびオフセットを使ってオフセット時間を返します。
- 戻り値:
- その時間およびオフセットを表すOffsetTime。null以外
-
toZonedDateTime
public ZonedDateTime toZonedDateTime()
オフセットをゾーンIDとして使用して、この日付/時間をZonedDateTime
に変換します。これは、オフセットをゾーンIDとして使用して、考えられるもっとも単純な
ZonedDateTime
を作成します。使用されるタイムゾーンを制御するには、
atZoneSameInstant(ZoneId)
およびatZoneSimilarLocal(ZoneId)
を参照してください。- 戻り値:
- 同じローカル日付/時間およびオフセットを表すゾーン付きの日付/時間。null以外
-
toInstant
public Instant toInstant()
この日付/時間をInstant
に変換します。これは、この日付/時間と同じ時系列上の時点を表す
Instant
を返します。- 戻り値:
- 同じインスタントを表す
Instant
、null以外
-
toEpochSecond
public long toEpochSecond()
この日付/時間を、エポック(1970-01-01T00:00:00Z)からの秒数に変換します。これにより、この日付/時間を
エポック秒
フィールドの値に変換できます。 これは一般的なアプリケーションの使用法ではなく、低レベルの変換を主な目的としたものです。- 戻り値:
- 1970-01-01T00:00:00Zのエポックからの秒数
-
compareTo
public int compareTo(OffsetDateTime other)
この日付/時間を別の日付/時間と比較します。この比較は、まずインスタントに基づいて行われ、次にローカル日付/時間に基づいて行われます。
Comparable
に定義されているとおりに、「equalsと一致」しています。たとえば、以下はコンパレータの順序です。
2008-12-03T10:30+01:00
2008-12-03T11:00+01:00
2008-12-03T12:00+02:00
2008-12-03T11:30+01:00
2008-12-03T12:00+01:00
2008-12-03T12:30+01:00
equals()
と矛盾しないようにするために必要です。- 定義:
compareTo
、インタフェースComparable<OffsetDateTime>
- パラメータ:
other
- 他の比較する日付/時間、null以外- 戻り値:
- コンパレータ値、小さい場合は負、大きい場合は正
-
isAfter
public boolean isAfter(OffsetDateTime other)
この日付/時間のインスタントが、指定された日付/時間のインスタントより後であるかどうかをチェックします。このメソッドは、日付/時間のインスタントのみを比較するという点で、
compareTo(java.time.OffsetDateTime)
およびequals(java.lang.Object)
での比較とは異なります。 これは、dateTime1.toInstant().isAfter(dateTime2.toInstant());
を使用する場合と同等です。- パラメータ:
other
- 他の比較する日付/時間、null以外- 戻り値:
- これが指定された日付/時間のインスタントより後にある場合はtrue
-
isBefore
public boolean isBefore(OffsetDateTime other)
この日付/時間のインスタントが、指定された日付/時間のインスタントより前であるかどうかをチェックします。このメソッドは、日付/時間のインスタントのみを比較するという点で、
compareTo(java.time.OffsetDateTime)
での比較とは異なります。 これは、dateTime1.toInstant().isBefore(dateTime2.toInstant());
を使用する場合と同等です。- パラメータ:
other
- 他の比較する日付/時間、null以外- 戻り値:
- これが指定された日付/時間のインスタントより前にある場合はtrue
-
isEqual
public boolean isEqual(OffsetDateTime other)
この日付/時間のインスタントが、指定された日付/時間のインスタントと等しいかどうかをチェックします。このメソッドは、日付/時間のインスタントのみを比較するという点で、
compareTo(java.time.OffsetDateTime)
およびequals(java.lang.Object)
での比較とは異なります。 これは、dateTime1.toInstant().equals(dateTime2.toInstant());
を使用する場合と同等です。- パラメータ:
other
- 他の比較する日付/時間、null以外- 戻り値:
- インスタントが、指定された日付/時間のインスタントと等しい場合はtrue
-
equals
public boolean equals(Object obj)
この日付/時間が別の日付/時間と等しいかどうかをチェックします。この比較は、ローカル日付/時間およびオフセットに基づいて行われます。 時系列上の同じインスタントに対して比較を行うには、
isEqual(java.time.OffsetDateTime)
を使用します。OffsetDateTime
型のオブジェクトのみが比較され、それ以外の型はfalseを返します。- オーバーライド:
equals
、クラスObject
- パラメータ:
obj
- チェックするオブジェクト、nullはfalseを返す- 戻り値:
- これが他の日付/時間と等しい場合はtrue
- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()
この日付/時間のハッシュ・コード。- オーバーライド:
hashCode
、クラスObject
- 戻り値:
- 適切なハッシュ・コード
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
toString
public String toString()
この日付/時間をString
として出力します(2007-12-03T10:15:30+01:00
など)。この出力は、次のISO-8601形式のいずれかになります。
uuuu-MM-dd'T'HH:mmXXXXX
uuuu-MM-dd'T'HH:mm:ssXXXXX
uuuu-MM-dd'T'HH:mm:ss.SSSXXXXX
uuuu-MM-dd'T'HH:mm:ss.SSSSSSXXXXX
uuuu-MM-dd'T'HH:mm:ss.SSSSSSSSSXXXXX
-
-