Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のtoEpochSecond()メソッドとは?使い方とサンプルコードを解説

Java 9では、LocalDateクラスにtoEpochSecond()メソッドが提供され、ローカル日付をエポック秒へ変換できるようになりました。このメソッドは、LocalDateをエポックである1970-01-01T00:00:00Zからの経過秒数に変換します。さらに、LocalDateは指定された時刻(LocalTime)ゾーンオフセット(ZoneOffset)と組み合わせることで、1970-01-01T00:00:00Zを起点とした秒数を正確に計算できます。

構文

public long toEpochSecond(LocalTime time, ZoneOffset offset)

パラメータ

  • time: 日付と組み合わせる時刻(LocalTime)
  • offset: 適用するゾーンオフセット(ZoneOffset)

戻り値

1970-01-01T00:00:00Zからの経過秒数がlong型として返されます。

使用例

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneOffset;

public class ToEpochSecondMethodTest {
    public static void main(String args[]) {
        LocalDate date = LocalDate.now();
        LocalTime time = LocalTime.now();

        System.out.println("LocalDate の toEpochSecond : " + date.toEpochSecond(time, ZoneOffset.of("Z")));
        System.out.println("LocalTime の toEpochSecond : " + time.toEpochSecond(date, ZoneOffset.of("Z")));
    }
}

実行結果

LocalDate の toEpochSecond : 1583496984
LocalTime の toEpochSecond : 1583496984

ポイント

上記の実行結果で両方の出力が同じ値になっているのは、LocalDate.toEpochSecond()LocalTime.toEpochSecond()が、同じ日付・時刻・ゾーンオフセットの組み合わせから「同一の時点」を計算しているためです。つまり、どちらのクラスから呼び出しても、得られるエポック秒は同一になります。タイムスタンプの比較やAPI連携など、時刻を秒単位で扱いたい場面で非常に便利なメソッドです。


  1. Javaのpack()メソッドとは?使い方とsetSize()との違いを解説

    pack()メソッドは、JavaのWindowクラスで定義されているメソッドで、フレーム内のすべてのコンポーネントがそれぞれの推奨サイズ(preferred size)以上で表示されるように、ウィンドウのサイズを自動的に調整します。 代替手段として、setSize()メソッドやsetBounds()メソッドを呼び出して、フレームのサイズを明示的に指定する方法もあります。しかし一般的には、pack()メソッドを使用する方がsetSize()よりも推奨されています。その理由は、pack()がフレームのサイズ決定をレイアウトマネージャーに委ねることができ、レイアウトマネージャーはプラットフォーム間の

  2. JavaのsetBounds()メソッドとは?使い方とサンプルコードを解説

    JavaのGUIプログラミングでは、レイアウトマネージャー(Layout Manager)がコンポーネントの位置やサイズを自動的に決定します。しかし、レイアウトマネージャーを使用しない場合は、コンポーネントの位置とサイズを手動で設定する必要があります。そのような場面で活躍するのがsetBounds()メソッドです。フレームのレイアウトマネージャーをnullに設定することで、コンポーネントの位置とサイズを自由に指定できるようになります。setBounds()メソッドの基本setBounds()メソッドは4つの引数を取ります。第1引数と第2引数はコンポーネントの左上隅のx座標・y座標、第3引数はコ