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

Javaで現在の日付・時刻をミリ秒で取得する方法を徹底解説

Javaで現在の日時をミリ秒で取得したい場面は多くあります。ミリ秒で表される時刻は「エポック時間」と呼ばれ、1970年1月1日00:00:00 GMTからの経過ミリ秒数を意味します。この記事では、Javaで現在時刻をミリ秒で取得できる代表的な方法を、コード例とともにわかりやすく解説します。

1. DateクラスのgetTime()メソッド

java.util.DateクラスのgetTime()メソッドは、エポック時間(1970年1月1日00:00:00 GMT)からの経過時間をミリ秒単位で取得し、long型の値として返します。

サンプルコード

import java.util.Date;
public class Sample {
    public static void main(String args[]){
        // Dateクラスのインスタンスを生成
        Date date = new Date();
        long msec = date.getTime();
        System.out.println("Milli Seconds: "+msec);
    }
}

実行結果

Milli Seconds: 1605160094688

2. CalendarクラスのgetTimeInMillis()メソッド

java.util.CalendarクラスのgetTimeInMillis()メソッドも、エポック時間からの経過ミリ秒数を取得して返します。Calendar.getInstance()でカレンダーオブジェクトを取得し、そのメソッドを呼び出します。

サンプルコード

import java.util.Calendar;
public class Sample {
    public static void main(String args[]){
        // Calendarオブジェクトを生成
        Calendar cal = Calendar.getInstance();
        long msec = cal.getTimeInMillis();
        System.out.println("Milli Seconds: "+msec);
    }
}

実行結果

Milli Seconds: 1605160934357

3. InstantクラスのtoEpochMilli()メソッド

Java 8以降で導入された新日時API(Date-Time API)では、java.time.InstantクラスのtoEpochMilli()メソッドを使ってエポックからの経過ミリ秒を取得できます。ここでは、ZonedDateTimeオブジェクトをInstantに変換してから呼び出しています。

サンプルコード

import java.time.Instant;
import java.time.ZonedDateTime;
public class Sample {
    public static void main(String args[]){
        // ZonedDateTimeオブジェクトを生成
        ZonedDateTime obj = ZonedDateTime.now();
        Instant instant = obj.toInstant();
        long msec = instant.toEpochMilli();
        System.out.println("Milli Seconds: "+msec);
    }
}

実行結果

Milli Seconds: 1605162474464

補足:System.currentTimeMillis()が最も手軽

オブジェクトを生成せずに、単純に現在時刻のミリ秒だけが必要な場合は、System.currentTimeMillis()を使うのが最もシンプルで効率的です。

public class Sample {
    public static void main(String args[]){
        long msec = System.currentTimeMillis();
        System.out.println("Milli Seconds: "+msec);
    }
}

まとめ

Javaで現在の日時をミリ秒で取得するには、Date#getTime()、Calendar#getTimeInMillis()、Instant#toEpochMilli()、そしてSystem.currentTimeMillis()といった複数の方法があります。新規開発ではスレッドセーフで直感的に扱えるDate-Time API(Instant)の利用が推奨され、単純にタイムスタンプが欲しいだけであればSystem.currentTimeMillis()が便利です。一方、レガシーコードの保守などでは、従来のDateやCalendarも依然として広く使われています。用途に応じて適切な方法を選択しましょう。

  1. Swiftで現在の日付と時刻を取得する方法(UTC・ローカル時刻対応)

    日付や時刻の処理は、プログラミング初心者がつまずきやすいポイントのひとつです。ほとんどのアプリでは現在の日付を取得する必要があり、予約管理、ログ記録、期限チェックなど、多くの機能がこの情報に依存しています。 本記事では、Swiftを使ってiOSアプリで現在の日付と時刻を取得する基本的な方法を解説します。具体的には、UTC(協定世界時)の時刻と、デバイスのタイムゾーンに基づく現地時刻の2パターンを紹介します。 UTC(協定世界時)の現在時刻を取得する UTCの時刻を取得したい場合は、Playgroundに以下のコードを貼り付けて実行してください。わずか2行で完了します。 let utcDate

  2. Androidで現在の日時を取得する方法【SimpleDateFormatの使い方を解説】

    はじめに Oracle公式ドキュメントによると、SimpleDateFormatはロケールに依存した形で日付のフォーマット(表示)と解析(パース)を行うための具象クラスです。本記事では、このクラスを使ってAndroidアプリ内で現在の日付と時刻を取得し、画面に表示する方法を解説します。 まず、以下のようにJavaのSimpleDateFormatクラスとDateクラスをインポートします。 import java.text.SimpleDateFormat; import java.util.Date; 実装手順 ステップ1:新規プロジェクトの作成 Android Studioを起動し、「Fil