【すぐ使える】日付を扱うJavaのDateクラスの使い方

javaのdateクラス
  • このエントリーをはてなブックマークに追加
  • Pocket

Javaで日付を扱う型は色々とあるが、もっとも有名なもののひとつがDateクラスだろう。

このページではDateクラスの使い方についてまとめている。便利なクラスなので、ぜひ使い方をマスターしていただければと思う。

JavaのDateクラス

最新のJava8では新しい日付クラスが登場し、これから説明するDateクラスに代わるクラスが推奨されるが、このページではDateクラスについて見ていく。

Dateは日付を扱うクラス

Dateクラスはjava.utilパッケージにある日付を扱うクラスだ。今日の日付を取得したい時や日付の比較、特定の日付と比較対象の日付が過去か未来かなどの判定を行う機能を提供している。

Dateクラスには特定の日時をセットして日付情報を作るメソッドも用意されているが、現在は非推奨となっている。 特定の日時のセットや、日時の計算を行いたい場合は、同じくjava.utilパッケージに存在するCalendarクラスを使用するようにしよう。

Dateクラスのオブジェクトの作り方

Dateクラスのオブジェクトの生成方法はこうだ。

new Date()

戻り値の型

public Date

内容

Dateクラスのオブジェクトを生成し、その生成された時刻を、もっとも近いミリ秒単位で表す。

new Date(long date)

戻り値の型

public Date

内容

オブジェクトを生成し、引数で渡されたミリ数秒で初期化する。

引数

date - 1970 年 1 月 1 日 00:00:00 GMT から経過したミリ秒数

Dateクラスは世界標準時エポック(1970/1/1)からのミリ秒で時間を表す。new演算子を使用して引数なしのオブジェクトを生成すると、現在時刻のDateオブジェクトが生成される。

  • GMTは世界標準時(Greenwich Mean Time)の略称だ
  • ミリ秒 → 1秒の1000分の1

Dateクラスのメソッド

それではDateクラスのメソッドをご紹介していこう。

とりあえずの使い方が知りたいという方は、下に載せているサンプルコードを見ていただくのが手っ取り早いだろう。

時間を取得するDateオブジェクト.getTime()

戻り値の型

Public long

内容

Dateオブジェクトが1970 年 1 月 1 日 00:00:00 GMT から経過したミリ秒数を返す。

戻り値:

1970 年 1 月 1 日 00:00:00 GMT から経過したミリ秒数

 

時間を設定するDateオブジェクト.setTime(long time)

戻り値の型

public void

内容

1970 年 1 月 1 日 00:00:00 GMT から time ミリ秒経過した時点を設定する。

引数:

time - ミリ秒数

前の日付かを判定するDateオブジェクト.before(Date when)

戻り値の型

Public boolean

内容

この日付が、指定された日付より前(過去)にあるかどうかを判定する。

引数:

when - 日付

戻り値:

Date オブジェクトが表す時点が 引数when の表す時点より早い場合だけ true、そうでない場合は false

例外:

- when が null の場合の、エラー(NullPointerException)が発生する。

後の日付かを判定するDateオブジェクト.after(Date when)

戻り値の型

Public boolean

内容

この日付が、指定された日付より後(未来)にあるかどうかを判定する。

引数:

when - 日付

戻り値:

Date オブジェクトが表す時点が 引数when の表す時点より遅い場合だけ true、そうでない場合は false

例外:

 - when が null の場合の、エラー(NullPointerException)が発生する。

同じ日付かどうかを確認するDateオブジェクト.equals(Object obj)

戻り値の型

Public boolean

内容

2 つの日付が等しいかどうかを比較する。引数が null ではなく、かつ、このオブジェクトとミリ秒まで同じ時点を表す Date オブジェクトであれば、true を返す。

引数:

obj - 比較対象のオブジェクト

戻り値:

オブジェクトが同じである場合は true、そうでない場合は false

日付を比較するDateオブジェクト.compareTo(Date anotherDate)

戻り値の型

Public int

内容

順序付けのために 2 つの Date を比較する。

引数:

anotherDate - 比較対象の Date

戻り値:

引数 anotherDate がこの Date と等しい場合は値 0。この Date が引数 anotherDate より前の場合は 0 より小さい値。この Date が引数 anotherDate より後の場合は 0 より大きい値

例外:

anotherDate が null の場合、エラー(NullPointerException)が発生する。 

Dateクラスのサンプルコード

それではDateクラスのサンプルコードを確認してみよう。

サンプルコード

実行結果

サンプルコードの説明

  • [1] Dateオブジェクトを生成し、実行時の日時情報を代入。
  • [2] date1からgetTime()メソッドで取得した1970年から実行時までの経過ミリ秒をパラメータとして渡して、オブジェクトを生成。
  • [3] date1の情報を表示。(内部的にtoString()を実行し情報を文字列で表示する)
  • [4] date1とdate2が同じ日時情報を持ったオブジェクトかどうかを比較。
  • [5] Calendar を使って2016年1月1日の日時情報を作成し、DateオブジェクトdateGantanに変換。
  • [6] 実行時date1がdateGantanより未来かを判定。
  • [7] 実行時date1がdateGantanより過去かを判定。

まとめ

このページではJavaのDateクラスについてまとめてきた。

徐々の使われにくくなっていくクラスだが、それでも既存コードにはたくさん登場するし、Javaの下位互換性を考えれば使えなくなることもない。

サンプルコードを実際に打って、確認していただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*