public final class OffsetDateTime extends Object implements Temporal, TemporalAdjuster, Comparable<OffsetDateTime>, Serializable
2007-12-03T10:15:30+01:00など)。
OffsetDateTimeは、オフセットを使った日付/時間の不変の表現です。このクラスでは、UTC/グリニッジからのオフセットの他に、すべての日付と時間のフィールドをナノ秒の精度まで格納します。たとえば、「2nd October 2007 at 13:45.30.123456789 +02:00」という値をOffsetDateTimeに格納できます。
OffsetDateTime、ZonedDateTime、およびInstantはすべて、時系列上のインスタントをナノ秒の精度まで格納します。Instantはもっとも単純で、単にインスタントを表します。OffsetDateTimeは、UTC/グリニッジからのオフセットをインスタントに加算して、ローカル日付/時間を取得できるようにします。ZonedDateTimeは完全なタイムゾーン・ルールを追加します。
ZonedDateTimeまたはInstantはより単純なアプリケーションのデータのモデル化に使用するよう意図されています。このクラスは、日付/時間の概念をより詳細にモデル化する場合や、データベースとの通信またはネットワーク・プロトコルでの通信を行う場合に使用できます。
これは値ベースのクラスです。OffsetDateTimeのインスタンスに対して、アイデンティティの影響を受けやすい操作(参照型等価演算子(==)、アイデンティティ・ハッシュ・コード、同期化など)を使用すると、予測できない結果が生じることがあるため、使わないようにしてください。比較する場合は、equalsメソッドを使用することをお薦めします。
| 修飾子と型 | フィールドと説明 |
|---|---|
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)
この
OffsetDateTimeをもう一方の日付/時間と比較します。 |
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のコピーを返します。 |
public static final OffsetDateTime MIN
OffsetDateTimeである「-999999999-01-01T00:00:00+18:00」。これは、最大オフセット(オフセットが大きくなるほど、時系列上では早くなる)での最小日付の開始時の午前零時のローカル日付/時間です。これは、LocalDateTime.MINとZoneOffset.MAXを組み合せます。これは、アプリケーションによって「遠い過去」の日付/時間として使用されることがあります。public static final OffsetDateTime MAX
OffsetDateTimeである「+999999999-12-31T23:59:59.999999999-18:00」。これは、最小オフセット(負のオフセットが大きくなるほど、時系列上では遅くなる)での最大日付の終わりの午前零時直前のローカル日付/時間です。これは、LocalDateTime.MAXとZoneOffset.MINを組み合せます。これは、アプリケーションによって「遠い将来」の日付/時間として使用されることがあります。public static Comparator<OffsetDateTime> timeLineOrder()
OffsetDateTimeインスタンスを比較するコンパレータを取得します。
このメソッドは、ベースとなるインスタントのみを比較するという点で、compareTo(java.time.OffsetDateTime)での比較とは異なります。
isAfter(java.time.OffsetDateTime), isBefore(java.time.OffsetDateTime), isEqual(java.time.OffsetDateTime)public static OffsetDateTime now()
これは、デフォルトのタイムゾーンのシステム・クロックを問い合せて、現在の日付/時間を取得します。オフセットは、そのクロックのタイムゾーンから計算されます。
このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
public static OffsetDateTime now(ZoneId zone)
これは、システム・クロックを問い合せて現在の日付/時間を取得します。タイムゾーンを指定すると、デフォルトのタイムゾーンへの依存を避けられます。オフセットは、指定されたタイムゾーンから計算されます。
このメソッドを使用すると、クロックがハードコードされているため、テストに代替のクロックを使用できないようにします。
zone - 使用するゾーンID、null以外public static OffsetDateTime now(Clock clock)
これは、指定されたクロックを問い合せて現在の日付/時間を取得します。オフセットは、そのクロックのタイムゾーンから計算されます。
このメソッドを使用すると、テストに代替のクロックを使用できます。代替のクロックはdependency injectionを使用して導入できます。
clock - 使用するクロック、null以外public static OffsetDateTime of(LocalDate date, LocalTime time, ZoneOffset offset)
OffsetDateTimeのインスタンスを取得します。
これは、指定されたローカルの日付、時間、およびオフセットを使用してオフセット日付/時間を作成します。
date - ローカル日付。null以外time - ローカル時間。null以外offset - ゾーンオフセット。null以外public static OffsetDateTime of(LocalDateTime dateTime, ZoneOffset offset)
OffsetDateTimeのインスタンスを取得します。
これは、指定されたローカル日付/時間およびオフセットを使用してオフセット日付/時間を作成します。
dateTime - ローカル日付/時間。null以外offset - ゾーンオフセット。null以外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以外DateTimeException - いずれかのフィールドの値が範囲外である場合、または「月の日」が年の月に対して無効である場合public static OffsetDateTime ofInstant(Instant instant, ZoneId zone)
InstantおよびゾーンIDからOffsetDateTimeのインスタンスを取得します。
これは、指定されたのと同じインスタントを使ってオフセット日付/時間を作成します。インスタントごとに有効なオフセットは1つしかないため、UTC/グリニッジからのオフセットを見つけるのは簡単です。
instant - 日付/時間の作成元のインスタント、null以外zone - タイムゾーン。オフセットの場合もある。null以外DateTimeException - 結果がサポートされている範囲を超える場合public static OffsetDateTime from(TemporalAccessor temporal)
OffsetDateTimeのインスタンスを取得します。
これは、指定された時間的オブジェクトに基づいてオフセット日付/時間を取得します。TemporalAccessorは任意の日付と時間のセットに関する情報を表し、それがこのファクトリでOffsetDateTimeのインスタンスに変換されます。
この変換ではまず、時間的オブジェクトからZoneOffsetを取得します。次に、LocalDateTimeの取得を試み、必要に応じてInstantにフォールバックします。結果は、ZoneOffsetと、LocalDateTimeまたはInstantのどちらかとの組合せになります。実装では、関連オブジェクトと同等のそれらのフィールドにアクセスするなどの最適化を実行することが許可されます。
このメソッドは、関数型インタフェースTemporalQueryのシグネチャに一致するため、メソッド参照OffsetDateTime::fromを介して問合せで使用できます。
temporal - 変換する一時オブジェクト、null以外DateTimeException - OffsetDateTimeに変換できない場合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以外DateTimeParseException - テキストが解析できない場合public static OffsetDateTime parse(CharSequence text, DateTimeFormatter formatter)
OffsetDateTimeのインスタンスを取得します。
そのテキストがフォーマッタを使って解析され、日付/時間が返されます。
text - 解析するテキスト。null以外formatter - 使用するフォーマッタ、null以外DateTimeParseException - テキストが解析できない場合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のisSupportedfield - チェックするフィールド、nullはfalseを返す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のisSupportedunit - チェックする単位、nullはfalseを返すpublic ValueRange range(TemporalField field)
範囲オブジェクトはフィールドの有効な最小値と最大値を表します。この日付/時間は、返される範囲の精度を高めるために使用されます。範囲を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドがChronoFieldの場合、ここに問合せを実装します。サポートされるフィールドは適切な範囲のインスタンスを返します。他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。
フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.rangeRefinedBy(TemporalAccessor)を呼び出すことにより取得されます。範囲を取得できるかどうかはフィールドによって決まります。
TemporalAccessorのrangefield - 範囲を問い合わせるフィールド、null以外DateTimeException - フィールドの範囲を取得できない場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合public int get(TemporalField field)
intとして取得します。
これは、指定されたフィールドの値をこの日付/時間に問い合せます。返される値は常にフィールドの値の有効な範囲内になります。値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドがChronoFieldの場合、ここに問合せを実装します。サポートされているフィールドはこの日付/時間に基づいて有効な値を返します。ただし、NANO_OF_DAY、MICRO_OF_DAY、EPOCH_DAY、PROLEPTIC_MONTH、およびINSTANT_SECONDSは長すぎてintに収まらないので、DateTimeExceptionがスローされます。他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。
フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。
TemporalAccessorのgetfield - 取得するフィールド、null以外DateTimeException - フィールドの値を取得できない場合、または値がフィールドの有効な値の範囲外の場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合、または値の範囲がintを超えている場合ArithmeticException - 数値のオーバーフローが発生した場合public long getLong(TemporalField field)
longとして取得します。
これは、指定されたフィールドの値をこの日付/時間に問い合せます。値を返せない場合は、フィールドがサポートされていないか他のなんらかの理由で、例外がスローされます。
フィールドがChronoFieldの場合、ここに問合せを実装します。サポートされるフィールドは、この日付/時間に基づく有効な値を返します。他のすべてのChronoFieldインスタンスはUnsupportedTemporalTypeExceptionをスローします。
フィールドがChronoFieldではない場合、このメソッドの結果は、引数としてthisを渡してTemporalField.getFrom(TemporalAccessor)を呼び出すことにより取得されます。値を取得できるかどうか、および値が何を表すかは、フィールドによって決まります。
TemporalAccessorのgetLongfield - 取得するフィールド、null以外DateTimeException - フィールドの値を取得できない場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public ZoneOffset getOffset()
これはUTC/グリニッジからのローカル日付/時間のオフセットです。
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以外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 - 結果がサポートされている日付範囲を超える場合public LocalDateTime toLocalDateTime()
LocalDateTime部分を取得します。
これは、この日付/時間と同じ年、月、日、および時間を使ってLocalDateTimeを返します。
public LocalDate toLocalDate()
LocalDate部分を取得します。
これは、この日付/時間と同じ年、月、および日を使ってLocalDateを返します。
public int getYear()
このメソッドは、年を表すプリミティブなint値を返します。
このメソッドで返される年は、get(YEAR)のように予期的なものです。紀元年を取得するには、get(YEAR_OF_ERA)を使用します。
public int getMonthValue()
このメソッドは、月を1-12のintとして返します。getMonth()を呼び出すことで列挙型Monthが使用される場合は、アプリケーション・コードがより明確になることが多くなります。
getMonth()public Month getMonth()
Monthを使用して、月フィールドを取得します。
このメソッドは、月を表す列挙型Monthを返します。これによって、int値が意味する内容に関する混乱を回避できます。プリミティブなint値にアクセスする必要がある場合、この列挙型はint値を提供します。
getMonthValue()public int getDayOfMonth()
このメソッドは、「月の日」を表すプリミティブなint値を返します。
public int getDayOfYear()
このメソッドは、「年の日」を表すプリミティブなint値を返します。
public DayOfWeek getDayOfWeek()
DayOfWeekである曜日フィールドを取得します。
このメソッドは、曜日を表す列挙型DayOfWeekを返します。これによって、int値が意味する内容に関する混乱を回避できます。プリミティブなint値にアクセスする必要がある場合、この列挙型はint値を提供します。
DayOfWeekからは追加情報を取得できます。具体的には、それらの値のテキスト名などがあります。
public LocalTime toLocalTime()
LocalTime部分を取得します。
これは、この日付/時間と同じ時、分、秒、およびナノ秒を使ってLocalTimeを返します。
public int getHour()
public int getMinute()
public int getSecond()
public int getNano()
public OffsetDateTime with(TemporalAdjuster adjuster)
これは、日付/時間を調整して、この日付/時間に基づくOffsetDateTimeを返します。調整は、指定されたアジャスタ戦略オブジェクトを使用して行われます。どのような調整が行われるかを理解するには、アジャスタのドキュメントを参照してください。
単純なアジャスタは、年フィールドなどの1つのフィールドだけを設定するなどです。複雑なアジャスタは、日付を月の最後の日に設定するなどです。一般的な調整の選択は、TemporalAdjusterで指定します。これらには、「月の最後の日」や「次の水曜日」を見つけることが含まれます。主要な日付/時間クラス(MonthやMonthDayなど)も、TemporalAdjusterインタフェースを実装します。アジャスタは、さまざまな長さの月やうるう年などの特別なケースの処理を担当します。
たとえば、このコードでは7月の最後の日の日付を返します。
import static java.time.Month.*; import static java.time.temporal.Adjusters.*; 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のwithadjuster - 使用するアジャスタ、null以外これに基づくOffsetDateTime。null以外DateTimeException - 調整ができない場合ArithmeticException - 数値のオーバーフローが発生した場合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のwithfield - 結果に設定するフィールド、null以外newValue - 結果のフィールドの新しい値これに基づくOffsetDateTime。null以外DateTimeException - フィールドを設定できない場合UnsupportedTemporalTypeException - フィールドがサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public OffsetDateTime withYear(int year)
OffsetDateTimeのコピーを返します。オフセットは計算に影響を及ぼさないため、結果でも同じになります。その「月の日」がその年に対して無効である場合は、その月の最後の有効な日に変更されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
year - 結果に設定される年(MIN_YEARからMAX_YEARまで)OffsetDateTime。null以外DateTimeException - 年の値が無効である場合public OffsetDateTime withMonth(int month)
OffsetDateTimeのコピーを返します。オフセットは計算に影響を及ぼさないため、結果でも同じになります。その「月の日」がその年に対して無効である場合は、その月の最後の有効な日に変更されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
month - 結果に設定される月。1(1月)-12(12月)OffsetDateTime。null以外DateTimeException - 月の値が無効である場合public OffsetDateTime withDayOfMonth(int dayOfMonth)
OffsetDateTimeのコピーを返します。結果となるOffsetDateTimeが無効である場合は、例外がスローされます。オフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
dayOfMonth - 結果に設定される「月の日」。1から28-31までOffsetDateTime。null以外DateTimeException - 「月の日」の値が無効である場合、または「月の日」がその月-年に対して無効である場合public OffsetDateTime withDayOfYear(int dayOfYear)
OffsetDateTimeのコピーを返します。結果となるOffsetDateTimeが無効である場合は、例外がスローされます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
dayOfYear - 結果に設定される「年の日」。1から365-366までOffsetDateTime。null以外DateTimeException - 「年の日」の値が無効である場合、または「年の日」がその年に対して無効である場合public OffsetDateTime withHour(int hour)
OffsetDateTimeのコピーを返します。
オフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
hour - 結果に設定される時(0-23)OffsetDateTime。null以外DateTimeException - 時の値が無効である場合public OffsetDateTime withMinute(int minute)
OffsetDateTimeのコピーを返します。
オフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
minute - 結果に設定される分(0-59)OffsetDateTime。null以外DateTimeException - 分の値が無効である場合public OffsetDateTime withSecond(int second)
OffsetDateTimeのコピーを返します。
オフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
second - 結果に設定される秒(0-59)OffsetDateTime。null以外DateTimeException - 秒の値が無効である場合public OffsetDateTime withNano(int nanoOfSecond)
OffsetDateTimeのコピーを返します。
オフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
nanoOfSecond - 結果に設定されるナノ秒(0-999,999,999)OffsetDateTime。null以外DateTimeException - ナノ秒の値が無効である場合public OffsetDateTime truncatedTo(TemporalUnit unit)
OffsetDateTimeのコピーを返します。
切り詰めでは、指定された単位よりも小さいフィールドをゼロに設定して、元の日付/時間のコピーを返します。たとえば、分単位で切り詰めると、秒およびナノ秒フィールドはゼロに設定されます。
単位は、標準日の長さを余りなしで等分するデュレーションを持つ必要があります。これには、ChronoUnitとDAYSで提供されるすべての時間単位が含まれます。他の単位は例外をスローします。
オフセットは計算に影響を及ぼさないため、結果でも同じになります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
unit - 切り捨てを行う単位、nullでないOffsetDateTime。null以外DateTimeException - 切り捨てられない場合UnsupportedTemporalTypeException - 単位がサポートされていない場合public OffsetDateTime plus(TemporalAmount amountToAdd)
これは、指定された量を加算して、この日付/時間に基づくOffsetDateTimeを返します。この量は通常PeriodまたはDurationですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。
計算は、TemporalAmount.addTo(Temporal)を呼び出すことによって量オブジェクトに委譲されます。量実装は加算を任意の方法で自由に実装できますが、通常はplus(long, TemporalUnit)にコールバックします。正常に加算できるかどうかを判断するには、量実装のドキュメントを参照してください。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalのplusamountToAdd - 加算する量、nullでないOffsetDateTime。null以外DateTimeException - 加算できない場合ArithmeticException - 数値のオーバーフローが発生した場合public OffsetDateTime plus(long amountToAdd, TemporalUnit unit)
これは、その単位での量を加算して、この日付/時間に基づくOffsetDateTimeを返します。量を加算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。
フィールドがChronoUnitである場合は、LocalDateTime.plus(long, TemporalUnit)によって加算が実装されます。オフセットは計算の一部ではないため、結果でも変わりません。
フィールドがChronoUnitでない場合、このメソッドの結果は、thisを引数として渡してTemporalUnit.addTo(Temporal, long)を呼び出すことによって取得されます。この場合、加算を実行するかどうかおよびどのように実行するかは単位によって決まります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalのplusamountToAdd - 結果に加算する単位の量、負も可unit - 加算する量の単位、nullでないOffsetDateTime。null以外DateTimeException - 加算できない場合UnsupportedTemporalTypeException - 単位がサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public OffsetDateTime plusYears(long years)
OffsetDateTimeのコピーを返します。
このメソッドは、3つの手順で、指定された量を年フィールドに加算します。
たとえば、2008-02-29 (うるう年)に1年を加算すると、2009-02-29(標準の年)という無効な日付が生じます。無効な結果を返す代わりに、その月の最後の有効な日である2009-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
years - 加算する年数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime plusMonths(long months)
OffsetDateTimeのコピーを返します。
このメソッドは、3つの手順で、指定された量を月フィールドに加算します。
たとえば、2007-03-31に1月を加算すると、2007-04-31という無効な日付が生じます。無効な結果を返す代わりに、その月の最後の有効な日である2007-04-30が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
months - 加算する月数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime plusWeeks(long weeks)
このメソッドは、指定された週単位の量を日フィールドに加算し、結果が有効のままであるように、必要に応じて月および年フィールドを増分します。この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2008-12-31に1週間を加算すると、2009-01-07という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
weeks - 加算する週数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime plusDays(long days)
このメソッドは、指定された量を日フィールドに加算し、結果が有効のままであるように、必要に応じて月および年フィールドを増分します。この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2008-12-31に1日を加算すると、2009-01-01という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
days - 加算する日数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime plusHours(long hours)
OffsetDateTimeのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
hours - 加算する時間数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime plusMinutes(long minutes)
OffsetDateTimeのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
minutes - 加算する分数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime plusSeconds(long seconds)
OffsetDateTimeのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
seconds - 加算する秒数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime plusNanos(long nanos)
OffsetDateTimeのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
nanos - 加算するナノ秒数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - その単位をこの型に追加できない場合public OffsetDateTime minus(TemporalAmount amountToSubtract)
これは、指定された量を減算して、この日付/時間に基づくOffsetDateTimeを返します。この量は通常PeriodまたはDurationですが、TemporalAmountインタフェースを実装する他のどの型であってもかまいません。
計算は、TemporalAmount.subtractFrom(Temporal)を呼び出すことによって量オブジェクトに委譲されます。量実装は減算を任意の方法で自由に実装できますが、通常はminus(long, TemporalUnit)にコールバックします。正常に減算できるかどうかを判断するには、量実装のドキュメントを参照してしてください。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalのminusamountToSubtract - 減算する量、nullでないOffsetDateTime。null以外DateTimeException - 減算ができない場合ArithmeticException - 数値のオーバーフローが発生した場合public OffsetDateTime minus(long amountToSubtract, TemporalUnit unit)
これは、その単位での量を減算して、この日付/時間に基づくOffsetDateTimeを返します。量を減算できない場合、単位がサポートされていないか他の理由のために、例外がスローされます。
このメソッドは、量を符号反転したplus(long, TemporalUnit)と同等です。加算および減算がどのように行われるかについての詳しい説明は、そのメソッドを参照してください。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
TemporalのminusamountToSubtract - 結果から減算する単位の量、負も可unit - 減算する量の単位、nullでないOffsetDateTime。null以外DateTimeException - 減算ができない場合UnsupportedTemporalTypeException - 単位がサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public OffsetDateTime minusYears(long years)
OffsetDateTimeのコピーを返します。
このメソッドは、3つの手順で、指定された量を年フィールドから減算します。
たとえば、2008-02-29 (うるう年)から1年を減算すると、2009-02-29(標準の年)という無効な日付が生じます。無効な結果を返す代わりに、その月の最後の有効な日である2009-02-28が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
years - 減算する年数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime minusMonths(long months)
OffsetDateTimeのコピーを返します。
このメソッドは、3つの手順で、指定された量を月フィールドから減算します。
たとえば、2007-03-31から1月を減算すると、2007-04-31という無効な日付が生じます。無効な結果を返す代わりに、その月の最後の有効な日である2007-04-30が選択されます。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
months - 減算する月数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime minusWeeks(long weeks)
OffsetDateTimeのコピーを返します。
このメソッドは、指定された週単位の量を日フィールドから減算し、結果が有効のままであるように、必要に応じて月および年フィールドを減らします。この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2008-12-31から1週間を減算すると、2009-01-07という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
weeks - 減算する週数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime minusDays(long days)
OffsetDateTimeのコピーを返します。
このメソッドは、指定された量を日フィールドから減算し、結果が有効のままであるように、必要に応じて月および年フィールドを増分します。この結果が無効になるのは、最大/最小の年を超える場合のみです。
たとえば、2008-12-31から1日を減算すると、2009-01-01という結果になります。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
days - 減算する日数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime minusHours(long hours)
OffsetDateTimeのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
hours - 減算する時間数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime minusMinutes(long minutes)
OffsetDateTimeのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
minutes - 減算する分数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime minusSeconds(long seconds)
OffsetDateTimeのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
seconds - 減算する秒数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public OffsetDateTime minusNanos(long nanos)
OffsetDateTimeのコピーを返します。
このインスタンスは不変で、このメソッド呼び出しによって影響を受けません。
nanos - 減算するナノ秒数。負の値の場合もあるOffsetDateTime。null以外DateTimeException - 結果がサポートされている日付範囲を超える場合public <R> R query(TemporalQuery<R> query)
これは指定された問合せ方法オブジェクトを使用してこの日付/時間を問い合わせます。TemporalQueryオブジェクトは結果を取得するために使用するロジックを定義します。このメソッドの結果を理解するには、問合せのドキュメントをお読みください。
このメソッドの結果は、thisを引数として渡して、指定した問合せでTemporalQuery.queryFrom(TemporalAccessor)メソッドを呼び出すことによって取得します。
TemporalAccessorのqueryR - 結果の型query - 呼び出す問合せ、null以外DateTimeException - 問い合わせできない場合(問合せによって定義される)ArithmeticException - 数値のオーバーフローが発生した場合(問合せによって定義される)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のadjustIntotemporal - 調整するターゲット・オブジェクト、null以外DateTimeException - 調整を実行できない場合ArithmeticException - 数値のオーバーフローが発生した場合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のuntilendExclusive - OffsetDateTimeに変換される終了日付(これを含まない)。null以外unit - 量を測定する単位、null以外DateTimeException - その量を計算できないか、終了時間をOffsetDateTimeに変換できない場合UnsupportedTemporalTypeException - 単位がサポートされていない場合ArithmeticException - 数値のオーバーフローが発生した場合public String format(DateTimeFormatter formatter)
この日付/時間はフォーマッタに渡され、文字列が生成されます。
formatter - 使用するフォーマッタ、null以外DateTimeException - 出力時にエラーが発生した場合public ZonedDateTime atZoneSameInstant(ZoneId zone)
ZonedDateTimeを作成します。
これは、この日付/時間および指定されたタイムゾーンから形成されたZonedDateTimeを返します。この変換では、表示可能なローカル日付/時間を無視し、代わりにベースとなるインスタントを使用します。これにより、ローカル時系列のギャップまたはオーバーラップの問題を回避できます。結果では、時、分、日などのフィールドにさまざまな値が含まれる可能性があります。
それらのフィールド値の保持を試みるには、atZoneSimilarLocal(ZoneId)を使用します。オフセットをゾーンIDとして使用するには、toZonedDateTime()を使用します。
zone - 使用するタイムゾーン、null以外public ZonedDateTime atZoneSimilarLocal(ZoneId zone)
ZonedDateTimeを作成します。
これは、この日付/時間および指定されたタイムゾーンから形成されたZonedDateTimeを返します。可能な場合、結果にはこのオブジェクトと同じローカル日付/時間が含まれます。
サマー・タイムなどのタイムゾーン・ルールは、ローカル時系列上のすべて時間が存在するとはかぎらないことを意味しています。それらのルールに従ってローカル日付/時間がギャップまたはオーバーラップに存在する場合は、リゾルバを使って結果となるローカル時間およびオフセットが決められます。このメソッドは、ZonedDateTime.ofLocal(LocalDateTime, ZoneId, ZoneOffset)を使用して、このインスタンスからのオフセットを保持します(可能な場合)。
ギャップおよびオーバーラップのより細かい制御は2つの方法で用意されています。オーバーラップ時に遅い方のオフセットを使用するだけの場合は、このメソッドの直後にZonedDateTime.withLaterOffsetAtOverlap()を呼び出します。
ローカル時系列に関係なく同じインスタントでゾーン付きの日付/時間を作成するには、atZoneSameInstant(ZoneId)を使用します。オフセットをゾーンIDとして使用するには、toZonedDateTime()を使用します。
zone - 使用するタイムゾーン、null以外public OffsetTime toOffsetTime()
OffsetTimeに変換します。
これは、同じローカル時間およびオフセットを使ってオフセット時間を返します。
public ZonedDateTime toZonedDateTime()
ZonedDateTimeに変換します。
これは、オフセットをゾーンIDとして使用して、考えられるもっとも単純なZonedDateTimeを作成します。
使用されるタイムゾーンを制御するには、atZoneSameInstant(ZoneId)およびatZoneSimilarLocal(ZoneId)を参照してください。
public Instant toInstant()
Instantに変換します。
これは、この日付/時間と同じ時系列上の時点を表すInstantを返します。
Instant、null以外public long toEpochSecond()
これにより、この日付/時間をエポック秒フィールドの値に変換できます。これは一般的なアプリケーションの使用法ではなく、低レベルの変換を主な目的としたものです。
public int compareTo(OffsetDateTime other)
OffsetDateTimeをもう一方の日付/時間と比較します。
この比較は、まずインスタントに基づいて行われ、次にローカル日付/時間に基づいて行われます。Comparableに定義されているとおりに、「equalsと一致」しています。
たとえば、以下はコンパレータの順序です。
2008-12-03T10:30+01:002008-12-03T11:00+01:002008-12-03T12:00+02:002008-12-03T11:30+01:002008-12-03T12:00+01:002008-12-03T12:30+01:00equals()と矛盾しないようにするために必要です。compareTo、インタフェース: Comparable<OffsetDateTime>other - 他の比較する日付/時間、null以外public boolean isAfter(OffsetDateTime other)
このメソッドは、日付/時間のインスタントのみを比較するという点で、compareTo(java.time.OffsetDateTime)およびequals(java.lang.Object)での比較とは異なります。これは、dateTime1.toInstant().isAfter(dateTime2.toInstant());を使用する場合と同等です。
other - 他の比較する日付/時間、null以外public boolean isBefore(OffsetDateTime other)
このメソッドは、日付/時間のインスタントのみを比較するという点で、compareTo(java.time.OffsetDateTime)での比較とは異なります。これは、dateTime1.toInstant().isBefore(dateTime2.toInstant());を使用する場合と同等です。
other - 他の比較する日付/時間、null以外public boolean isEqual(OffsetDateTime other)
このメソッドは、日付/時間のインスタントのみを比較するという点で、compareTo(java.time.OffsetDateTime)およびequals(java.lang.Object)での比較とは異なります。これは、dateTime1.toInstant().equals(dateTime2.toInstant());を使用する場合と同等です。
other - 他の比較する日付/時間、null以外public boolean equals(Object obj)
この比較は、ローカル日付/時間およびオフセットに基づいて行われます。時系列上の同じインスタントに対して比較を行うには、isEqual(java.time.OffsetDateTime)を使用します。OffsetDateTime型のオブジェクトのみが比較され、それ以外の型はfalseを返します。
equals、クラス: Objectobj - チェックするオブジェクト、nullはfalseを返すObject.hashCode()、HashMappublic int hashCode()
hashCode、クラス: ObjectObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public String toString()
Stringとして出力します(2007-12-03T10:15:30+01:00など)。
この出力は、次のISO-8601形式のいずれかになります。
uuuu-MM-dd'T'HH:mmXXXXXuuuu-MM-dd'T'HH:mm:ssXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSSSSXXXXXuuuu-MM-dd'T'HH:mm:ss.SSSSSSSSSXXXXX バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.