1.LocalDateTimeクラス

このクラスは、とクラスLocalDateTimeの機能を組み合わせたもので、日付と時刻の両方を保存します。そのオブジェクトも不変で、そのメソッドはおよびクラスのメソッドと似ています。LocalDateLocalTimeLocalDateLocalTime

現在の日付と時刻を取得する

ここではすべてが予想どおりです。now()メソッドを使用します。例:

コード コンソール出力
LocalDateTime time = LocalDateTime.now();
System.out.println("Now = " + time);

Now = 2019-02-22T09:49:19.275039200

画面に表示されるとき、日付と時刻は文字 で区切られますT

特定の日付と時刻を取得する

LocalDate当然のことながら、すべてはとクラスに似ていますLocalTime。次のメソッドを使用しますof()

... = LocalDateTime.of(year, month, day, hours, minutes, seconds);

まず、クラスと同じ形式で日付を指定するパラメーターがありますLocalDate。次に、クラスと同じ形式で時間を指定するパラメーターがありますLocalTime。このメソッドのすべてのバリエーションのリストをof()以下に示します。

メソッド
of (int year, int month, int day, int hour, int minute)
of (int year, int month, int day, int hour, int minute, int second)
of (int year, int month, int day, int hour, int minute, int second, int nano)
of (int year, Month month, int day, int hour, int minute)
of (int year, Month month, int day, int hour, int minute, int second)
of (int year, Month month, int day, int hour, int minute, int second, int nano)
of (LocalDate date, LocalTime time)

日付を直接設定することも、LocalDateLocalTimeオブジェクトを通じて間接的に設定することもできます。

コード
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime current = LocalDateTime.of(date, time);
System.out.println("Now = " + current);

LocalDateTime date = LocalDateTime.of(2019, Month.MAY, 15, 12, 15, 00);
System.out.println("Now = " + date);
コンソール出力
Now = 2019-02-22T10:05:38.465675100
Now = 2019-05-15T12:15

このLocalDateTimeクラスには、日付や時刻の要素を取得するメソッドがあります。LocalDateこれらは、およびクラスのメソッドを正確に反映していますLocalTime。ここでは繰り返しません。



2.Instantクラス

Java の作成者も昔ながらのやり方を忘れていません。

Date Time API には、コンピューターで発生するプロセスを対象とした時間を操作するための Instant クラスが含まれています。時間、分、秒の代わりに、秒、ミリ秒、ナノ秒を扱います。

このクラスには、以下を表す 2 つのフィールドがあります。

  • 1970 年 1 月 1 日から経過した
  • ナノ秒

このクラスは開発者向けに作成されたものですか? はい。そのため、1970 年の初めから始まる Unix 時間で時間を計算します。

Instantこのクラスは、プログラマが必要とするものだけを保持した、クラスの簡略化されたバージョンであるとさえ言えますDate

Instantオブジェクトとまったく同じ方法でオブジェクトを取得できますLocalTime

Instant timestamp = Instant.now();

ここで、timestampInstant変数、 はクラスの静的メソッドの呼び出しです。Instant.now()now()Instant

例:

コード コンソール出力
Instant timestamp = Instant.now();
System.out.println(timestamp);

2019-02-22T08:42:42.234945300Z

of()1970 年 1 月 1 日からの経過時間を渡すことで、メソッドのバリエーションを使用して新しいオブジェクトを作成することもできます。

ofEpochMilli(long milliseconds)
ミリ秒数を渡す必要があります
ofEpochSecond(long seconds)
秒数を渡す必要があります
ofEpochSecond(long seconds, long nanos)
秒とナノ秒を渡す必要があります

Instantオブジェクトで使用できるメソッド

Instant クラスには、フィールドの値を返す 2 つのメソッドがあります。

long getEpochSecond()
1970 年 1 月 1 日から経過した秒数
int getNano()
ナノ秒。
long toEpochMilli()
1970 年 1 月 1 日から経過したミリ秒数

Instant既存のオブジェクトに基づいて新しいオブジェクトを作成するメソッドもあります。

Instant plusSeconds(long)
現在時刻に秒を加算します
Instant plusMillis(long)
ミリ秒を追加します
Instant plusNanos(long)
ナノ秒を追加します
Instant minusSeconds(long)
秒を減算します
Instant minusMillis(long)
ミリ秒を減算します
Instant minusNanos(long)
ナノ秒を減算します

例:

コード コンソール出力
Instant timestamp = Instant.now();
System.out.println(timestamp);

long n = timestamp.toEpochMilli();
Instant time = Instant.ofEpochMilli(n);
System.out.println(time);

2019-02-22T09:01:20.535344Z



2019-02-22T09:01:20.535Z