Javaで2つの時間(Date)の差分時間を取得する方法

java

2つの日付間で何日開きがあるか、差分時間を算出する方法です。
差分日数を算出する方法は過去にコチラで紹介しています。今回は時間を算出します。

[スポンサーリンク]

差分時間を取得するプログラム

    public static void main( String[] args ) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Date dateTo = null;
        Date dateFrom = null;
     
        // 日付を作成します。
        try {
            dateFrom = sdf.parse("2013/08/01 13:00:00");
            dateTo = sdf.parse("2013/08/01 15:00:00");
        } catch (ParseException e) {
            e.printStackTrace();
        }
     
        // 日付をlong値に変換します。
        long dateTimeTo = dateTo.getTime();
        long dateTimeFrom = dateFrom.getTime();
     
        // 差分の時間を算出します。
        long dayDiff = ( dateTimeTo - dateTimeFrom  ) / (1000 * 60 * 60 );
     
        System.out.println( "日数(FROM) : " + sdf.format(dateFrom) );
        System.out.println( "日数(TO) : " + sdf.format(dateTo) );
        System.out.println( "差分時間 : " + dayDiff );
    }

実行結果

>実行結果
日数(FROM) : 2013/08/01 13:00:00
日数(TO) : 2013/08/01 15:00:00
差分時間 : 2

解説

開始日付(FROM)と終了日付(TO)の差分時間を算出しているプログラムです。

dateクラスのgetTime()で、ミリ秒が取得できるので、
今回は時間を取得するので、ミリ秒取得後、(1000 * 60 * 60 )で割る必要があります。