Java : Date (日付・時刻) - API使用例
Date (Java SE 21 & JDK 21) の使い方まとめです。
だいたいのメソッドを網羅済みです。
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()があとに続きます。
非推奨です。
関連記事
- 日付・時刻の基本
- Date, CalendarではなくLocalDateTime, ZonedDateTimeを使おう
- 文字列と日付・時刻の変換
- 日付と時刻、曜日の計算
- 現在時刻(日時)の取得いろいろ
- 現在の曜日(DayOfWeek)を取得
- ZoneIdとZoneOffsetの違い
- API 使用例
- Calendar (カレンダー)
- ChronoLocalDate
- ChronoLocalDateTime
- ChronoZonedDateTime
- Clock (時計)
- DateTimeException (日付・時刻の例外)
- DateTimeParseException (日付・時刻の解析例外)
- DayOfWeek (曜日)
- Duration (時間の量)
- Era (紀元)
- Instant (時点)
- InstantSource
- JapaneseDate (和暦を使った日付)
- LocalDate (日付・タイムゾーンなし)
- LocalDateTime (日時・タイムゾーンなし)
- LocalTime (時刻・タイムゾーンなし)
- Month (月)
- MonthDay (月・日)
- OffsetDateTime (日時・オフセットあり)
- OffsetTime (時刻・オフセットあり)
- Period (日付の量)
- Temporal
- TemporalAccessor
- TemporalAdjuster (日付・時刻の調整)
- TemporalAdjusters (日付・時刻の調整ユーティリティ)
- TimeZone (タイムゾーン)
- Year (年)
- YearMonth (年・月)
- ZonedDateTime (日時・タイムゾーンあり)
- ZoneId (タイムゾーンID)
- ZoneOffset (タイムゾーン・オフセット)