広告

Java : Date (日付・時刻) - API使用例

Date (Java SE 21 & JDK 21) の使い方まとめです。
だいたいのメソッドを網羅済みです。
API仕様書のおともにどうぞ。

注意

  • Date クラスは古い API です。ほとんどのメソッドが非推奨(@Deprecated) になっています。
    代わりに、java.time パッケージにある InstantLocalDate などの新しい API を使うことをおすすめします。


概要

クラスDateは、特定の時点を表します(精度はミリ秒)。

クラス構成

final var timeZone = TimeZone.getDefault();
System.out.println(timeZone.getID()); // Asia/Tokyo

final var date1 = new Date(0);
System.out.println(date1); // Thu Jan 01 09:00:00 JST 1970
System.out.println(date1.getTime()); // 0

final var date2 = new Date(4133894400000L);
System.out.println(date2); // Fri Dec 31 09:00:00 JST 2100
System.out.println(date2.getTime()); // 4133894400000

コンストラクタ

Date ()

Dateオブジェクトを割り当て、初期化します。これによって、このオブジェクトは、割り当てられたときの時刻を、もっとも近いミリ秒単位で表します。

final var date = new Date();
System.out.println(date); // Sat Jun 29 15:54:18 JST 2024

Date (int year, int month, int date)

非推奨。 JDK version 1.1以降は、Calendar.set(year+1900, month, date)またはGregorianCalendar(year+1900, month, date)に置き換えられています。

非推奨です。

Date (int year, int month, int date, int hrs, int min)

非推奨。 JDK version 1.1以降は、Calendar.set(year+1900, month, date, hrs, min)またはGregorianCalendar(year+1900, month, date, hrs, min)に置き換えられています。

非推奨です。

Date (int year, int month, int date, int hrs, int min, int sec)

非推奨。 JDK version 1.1以降は、Calendar.set(year+1900, month, date, hrs, min, sec)またはGregorianCalendar(year+1900, month, date, hrs, min, sec)に置き換えられています。

非推奨です。

Date (long date)

Dateオブジェクトを割り当て、初期化します。これによって、このオブジェクトは、「元期」(すなわち1970年1月1日00:00:00 GMT)である標準時からの指定されたミリ秒数を表します。

final var timeZone = TimeZone.getDefault();
System.out.println(timeZone.getID()); // Asia/Tokyo

final var date1 = new Date(0);
System.out.println(date1); // Thu Jan 01 09:00:00 JST 1970
System.out.println(date1.getTime()); // 0

final var date2 = new Date(4133894400000L);
System.out.println(date2); // Fri Dec 31 09:00:00 JST 2100
System.out.println(date2.getTime()); // 4133894400000

Date (String s)

非推奨。 JDK Version 1.1以降は、DateFormat.parse(String s)に置き換えられています。

非推奨です。

メソッド

boolean after (Date when)

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

final var date = new Date(1000);

final var date2 = new Date(500);
final var date3 = new Date(1000);
final var date4 = new Date(9999);

System.out.println(date.after(date2)); // true
System.out.println(date.after(date3)); // false
System.out.println(date.after(date4)); // false

boolean before (Date when)

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

final var date = new Date(1000);

final var date2 = new Date(500);
final var date3 = new Date(1000);
final var date4 = new Date(9999);

System.out.println(date.before(date2)); // false
System.out.println(date.before(date3)); // false
System.out.println(date.before(date4)); // true

Object clone ()

このオブジェクトのコピーを返します。

final var timeZone = TimeZone.getDefault();
System.out.println(timeZone.getID()); // Asia/Tokyo

final var date = new Date(4133894400000L);
System.out.println(date); // Fri Dec 31 09:00:00 JST 2100

final var cloned = date.clone();
System.out.println(cloned); // Fri Dec 31 09:00:00 JST 2100

int compareTo (Date anotherDate)

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

final var date = new Date(1000);

final var date2 = new Date(500);
final var date3 = new Date(1000);
final var date4 = new Date(9999);

System.out.println(date.compareTo(date2)); // 1
System.out.println(date.compareTo(date3)); // 0
System.out.println(date.compareTo(date4)); // -1

boolean equals (Object obj)

2つの日付が等しいかどうかを比較します。

final var date = new Date(1000);

final var date2 = new Date(500);
final var date3 = new Date(1000);
final var date4 = new Date(9999);

System.out.println(date.equals(date2)); // false
System.out.println(date.equals(date3)); // true
System.out.println(date.equals(date4)); // false

static Date from (Instant instant)

InstantオブジェクトからDateのインスタンスを取得します。

final var instant = Instant.ofEpochMilli(4133894400000L);
System.out.println(instant); // 2100-12-31T00:00:00Z

final var date = Date.from(instant);
System.out.println(date.getTime()); // 4133894400000

int getDate ()

非推奨。 JDK Version 1.1以降は、Calendar.get(Calendar.DAY_OF_MONTH)に置き換えられています。

非推奨です。

int getDay ()

非推奨。 JDK Version 1.1以降は、Calendar.get(Calendar.DAY_OF_WEEK)に置き換えられています。

非推奨です。

int getHours ()

非推奨。 JDK Version 1.1以降は、Calendar.get(Calendar.HOUR_OF_DAY)に置き換えられています。

非推奨です。

int getMinutes ()

非推奨。 JDK Version 1.1以降は、Calendar.get(Calendar.MINUTE)に置き換えられています。

非推奨です。

int getMonth ()

非推奨。 JDK Version 1.1以降は、Calendar.get(Calendar.MONTH)に置き換えられています。

非推奨です。

int getSeconds ()

非推奨。 JDK Version 1.1以降は、Calendar.get(Calendar.SECOND)に置き換えられています。

非推奨です。

long getTime ()

このDateオブジェクトで表される、1970年1月1日00:00:00 GMTからのミリ秒数を返します。

final var timeZone = TimeZone.getDefault();
System.out.println(timeZone.getID()); // Asia/Tokyo

final var date = new Date(0);
System.out.println(date); // Thu Jan 01 09:00:00 JST 1970
System.out.println(date.getTime()); // 0

date.setTime(4133894400000L);
System.out.println(date); // Fri Dec 31 09:00:00 JST 2100
System.out.println(date.getTime()); // 4133894400000

int getTimezoneOffset ()

非推奨。 JDK Version 1.1以降は、-(Calendar.get(Calendar.ZONE_OFFSET)+Calendar.get(Calendar.DST_OFFSET))/(60 * 1000)に置き換えられています。

非推奨です。

int getYear ()

非推奨。 JDK Version 1.1以降は、Calendar.get(Calendar.YEAR) - 1900に置き換えられています。

非推奨です。

int hashCode ()

このオブジェクトに対するハッシュ・コード値を返します。

final var ret1 = new Date(0).hashCode();
System.out.println(ret1); // 0

final var ret2 = new Date(1000).hashCode();
System.out.println(ret2); // 1000

final var ret3 = new Date(-10000).hashCode();
System.out.println(ret3); // 9999

static long parse (String s)

非推奨。 JDK Version 1.1以降は、DateFormat.parse(String s)に置き換えられています。

非推奨です。

void setDate (int date)

非推奨。 JDK Version 1.1以降は、Calendar.set(Calendar.DAY_OF_MONTH, int date)に置き換えられています。

非推奨です。

void setHours (int hours)

非推奨。 JDK Version 1.1以降は、Calendar.set(Calendar.HOUR_OF_DAY, int hours)に置き換えられています。

非推奨です。

void setMinutes (int minutes)

非推奨。 JDK Version 1.1以降は、Calendar.set(Calendar.MINUTE, int minutes)に置き換えられています。

非推奨です。

void setMonth (int month)

非推奨。 JDK Version 1.1以降は、Calendar.set(Calendar.MONTH, int month)に置き換えられています。

非推奨です。

void setSeconds (int seconds)

非推奨。 JDK Version 1.1以降は、Calendar.set(Calendar.SECOND, int seconds)に置き換えられています。

非推奨です。

void setTime (long time)

このDateオブジェクトを、1970年1月1日00:00:00 GMTからtimeミリ秒の時点を表すように設定します。

final var timeZone = TimeZone.getDefault();
System.out.println(timeZone.getID()); // Asia/Tokyo

final var date = new Date(0);
System.out.println(date); // Thu Jan 01 09:00:00 JST 1970
System.out.println(date.getTime()); // 0

date.setTime(4133894400000L);
System.out.println(date); // Fri Dec 31 09:00:00 JST 2100
System.out.println(date.getTime()); // 4133894400000

void setYear (int year)

非推奨。 JDK Version 1.1以降は、Calendar.set(Calendar.YEAR, year+1900)に置き換えられています。

非推奨です。

String toGMTString ()

非推奨。 JDK version 1.1以降は、GMT TimeZoneを使用するDateFormat.format(Date date)に置き換えられています。

非推奨です。

Instant toInstant ()

このDateオブジェクトをInstantに変換します。

final var date = new Date(4133894400000L);

final var instant = date.toInstant();
System.out.println(instant); // 2100-12-31T00:00:00Z
System.out.println(instant.toEpochMilli()); // 4133894400000

String toLocaleString ()

非推奨。 JDK Version 1.1以降は、DateFormat.format(Date date)に置き換えられています。

非推奨です。

String toString ()

Dateオブジェクトを次の形式のStringに変換します。

final var timeZone = TimeZone.getDefault();
System.out.println(timeZone.getID()); // Asia/Tokyo

final var date1 = new Date(0);
final var str1 = date1.toString();
System.out.println(str1); // Thu Jan 01 09:00:00 JST 1970

final var date2 = new Date(4133894400000L);
final var str2 = date2.toString();
System.out.println(str2); // Fri Dec 31 09:00:00 JST 2100

static long UTC (int year, int month, int date, int hrs, int min, int sec)

非推奨。 JDK Version 1.1以降は、Calendar.set(year+1900, month, date, hrs, min, sec)またはGregorianCalendar(year+1900, month, date, hrs, min, sec)に置き換えられています。UTC TimeZoneを使用し、Calendar.getTime().getTime()があとに続きます。

非推奨です。


関連記事

ページの先頭へ