日時のエポックからのUTCミリ秒値を取得する(getTimeInMillis)

広告

Calendarクラスのオブジェクトが保持している日時を、1970 年 1 月 1 日 00:00:00.000 GMT (グレゴリオ暦)からの経過ミリ秒数の形で取得します。

public long getTimeInMillis()

この Calendar の時刻値をミリ秒で返します。

戻り値:
  エポックからの UTC ミリ秒値で表される現在時刻

2つのCalendarクラスのオブジェクトを比較する場合に、差分を計算するためなどにエポックからの経過ミリ秒の値に変換して差を取る場合などに使います。

サンプルプログラム

では実際に試してみましょう。

testCalendar5.java

import java.util.Calendar;

class testCalendar5{
  public static void main(String args[]){

    Calendar calendar1 = Calendar.getInstance();

    System.out.println("日時1を2006/05/08 09:45:10に設定します");
    calendar1.clear();
    calendar1.set(2006, 4, 8, 9, 45, 10);
    long millis1 = calendar1.getTimeInMillis();
    System.out.println("エポックからの経過ミリ秒の値は" + millis1 + "です");

    Calendar calendar2 = Calendar.getInstance();

    System.out.println("日時2を2006/05/11 12:58:15に設定します");
    calendar2.clear();
    calendar2.set(2006, 4, 11, 12, 58, 15);
    long millis2 = calendar2.getTimeInMillis();
    System.out.println("エポックからの経過ミリ秒の値は" + millis2 + "です");

    long diff = millis2 - millis1;
    System.out.println("日時の差は" + diff  + "ミリ秒です");

    diff = diff / 1000;    /* 秒以下切捨て */

    long se = diff % 60;
    diff = diff / 60;

    long mi = diff % 60;
    diff = diff / 60;

    long ho = diff % 24;
    long day = diff / 24;

    System.out.println(day + "日と" + ho + "時" + mi + "分" + se + "秒");
  }
}

上記を実際にコンパイルして実行してみると下記のようになります。

p5

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。