Javaで時間をミリ秒に変換する

1. 概要

このクイックチュートリアルでは、* Javaで時間をUnixエポックミリ秒に変換する複数の方法を説明します*。
具体的には、以下を使用します。
  • コアJavaの_java.util.Date_および_Calendar_

  • Java 8の日付と時刻のAPI

  • Joda-Timeライブラリ

*2. コアJava *

* 2.1。 Date *の使用

まず、ミリ秒のランダムな値を保持する_millis_プロパティを定義しましょう:
long millis = 1556175797428L; // April 25, 2019 7:03:17.428 UTC
この値を使用して、さまざまなオブジェクトを初期化し、結果を検証します。
次に、_Date_オブジェクトから始めましょう。
Date date = // implementation details
これで、単に_getTime()_メソッドを呼び出すだけで_date_をミリ秒に変換する準備ができました*:
Assert.assertEquals(millis, date.getTime());

* 2.2。 Calendar *の使用

同様に、_Calendar_オブジェクトがある場合は、_getTimeInMillis()_メソッドを使用できます。
Calendar calendar = // implementation details
Assert.assertEquals(millis, calendar.getTimeInMillis());

*3. Java 8 Date Time API *

* 3.1。 Instant *の使用

簡単に言えば、https://www.baeldung.com/current-date-time-and-timestamp-in-java-8 [_Instant_]はJavaのエポックタイムラインのポイントです。
_Instant_からミリ秒単位で現在の時刻を取得できます。
java.time.Instant instant = // implementation details
Assert.assertEquals(millis, instant.toEpochMilli());
その結果、_toEpochMilli()_メソッドは、前に定義したのと同じミリ秒数を返します。

* 3.2。 LocalDateTime *の使用

同様に、Java 8のlink:/java-8-date-time-intro[Date and Time API]を使用して、_LocalDateTime_をミリ秒に変換できます。
LocalDateTime localDateTime = // implementation details
ZonedDateTime zdt = ZonedDateTime.of(localDateTime, ZoneId.systemDefault());
Assert.assertEquals(millis, zdt.toInstant().toEpochMilli());
まず、現在の日付のインスタンスを作成しました。 その後、_toEpochMilli()_メソッドを使用して、_ZonedDateTime_をミリ秒に変換しました。
知っているように、_LocalDateTime_にはタイムゾーンに関する情報は含まれていません。 つまり、* LocalDateTime_インスタンスからミリ秒を直接取得することはできません*。

4. ジョーダタイム

Java 8はJoda-Timeの機能の多くを追加しますが、Java 7以前を使用している場合はこのオプションを使用できます。

* 4.1。 Instant *の使用

まず、_getMillis()_メソッドを使用して、* https://www.baeldung.com/joda-time [Joda-Time] * _Instant_クラスインスタンスから現在のシステムミリ秒を取得できます。
Instant jodaInstant = // implementation details
Assert.assertEquals(millis, jodaInstant.getMillis());

* 4.2。 DateTime *の使用

さらに、Joda-Time _DateTime_インスタンスがある場合:
DateTime jodaDateTime = // implementation details
次に、_getMillis()_メソッドを使用してミリ秒を取得できます。
Assert.assertEquals(millis, jodaDateTime.getMillis());

5. 結論

結論として、この記事ではJavaで時間をミリ秒に変換する方法を示します。
最後に、いつものように、この記事の完全なコードはhttps://github.com/eugenp/tutorials/tree/master/java-dates-2[on on GitHub]で入手できます。