例による Java 日付
この Java コア チュートリアルでは、さまざまな Java サンプル プログラムで java.util.Date クラスを使用する方法を学習します。
目次
<オール>現在時刻から Date オブジェクトを作成
Java は、次の Java コードのように現在の時刻を持つ新しい Date オブジェクトを作成するために使用できる Date のデフォルト コンストラクタを提供します。
DateExample1.java
import java.util.Date;
public class DateExample1 {
public static void main(String... args) {
Date date = new Date();
System.out.println(date);
}
}
以下のような出力。Wed Apr 13 23:31:14 ICT 2022
ミリ秒から Date オブジェクトを作成
Java では、以下のように、1970 年 1 月 1 日 00:00:00 GMT から指定されたミリ秒値で新しい Date オブジェクトを作成することもできます。
DateExample2.java
import java.util.Date;
public class DateExample2 {
public static void main(String... args) {
long milliseconds = 1600000000000L;
Date date = new Date(milliseconds);
System.out.println(milliseconds);
System.out.println(date);
}
}
出力は次のとおりです。1600000000000
Sun Sep 13 19:26:40 ICT 2020
日付オブジェクトを複製する方法
Java では、次の Java サンプル プログラムのように、Date.clone() メソッドを使用して Date オブジェクトのコピーを取得できます。
DateExample3.java
import java.util.Date;
public class DateExample3 {
public static void main(String... args) {
Date date1 = new Date();
Date date2 = (Date)date1.clone();
System.out.println(date1);
System.out.println(date2);
}
}
以下のような出力。Wed Apr 13 23:40:46 ICT 2022
Wed Apr 13 23:40:46 ICT 2022
日付をミリ秒に変換
1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数を返す Date.getTime() メソッド。以下のように、Date オブジェクトをミリ秒値に変換するために使用できます。
DateExample4.java
import java.util.Date;
public class DateExample4 {
public static void main(String... args) {
Date date = new Date();
long milliseconds = date.getTime();
System.out.println(date);
System.out.println(milliseconds);
}
}
以下のような出力。Wed Apr 13 23:44:14 ICT 2022
1649868254970
ミリ秒を日付に変換
Java では、Date.setTime() メソッドを使用して、1970 年 1 月 1 日 00:00:00 GMT 以降の時間を表すミリ秒を Date オブジェクトに次の Java コードとして設定できます。
DateExample5.java
import java.util.Date;
public class DateExample5 {
public static void main(String... args) {
long milliseconds = 1549800000000L;
Date date = new Date();
date.setTime(milliseconds);
System.out.println(milliseconds);
System.out.println(date);
}
}
以下のような出力。1549800000000
Sun Feb 10 19:00:00 ICT 2019
文字列を日付オブジェクトに変換
Java で String 値を Date オブジェクトに変換するには、指定された日時フォーマット文字列である java.text.SimpleDateFormat クラスを使用し、SimpleDateFormat.parse() メソッドを使用して、以下のように指定された日付文字列から Date オブジェクトを取得します。
DateExample7.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample7 {
public static void main(String... args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = simpleDateFormat.parse("2022/04/10 08:00:00");
Date date2 = simpleDateFormat.parse("2022/04/30 20:45:00");
System.out.println(date1);
System.out.println(date2);
}
}
出力は次のとおりです。Sun Apr 10 08:00:00 ICT 2022
Sat Apr 30 20:45:00 ICT 2022
日付オブジェクトを文字列に変換
Java で Date オブジェクトを String に変換するには、特定の日時フォーマット文字列である java.text.SimpleDateFormat クラスを使用し、SimpleDateFormat.format() メソッドを使用して、次の Java コードのように指定された Date オブジェクトから String を取得します。
DateExample8.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample8 {
public static void main(String... args) throws ParseException {
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
String dateString = simpleDateFormat.format(date);
System.out.println(dateString);
}
}
出力は次のとおりです。2022/04/14 00:01:22
または、以下のように Date.toString() メソッドを使用してください。
DateExample12.java
import java.util.Date;
public class DateExample12 {
public static void main(String... args) {
Date date = new Date();
String dateString = date.toString();
System.out.println(dateString);
}
}
出力は次のとおりです。Thu Apr 14 00:13:36 ICT 2022
日付が指定された日付より前かどうかを確認する
Java は Date.before() メソッドを提供して、Date オブジェクトが指定された Date オブジェクトの前にあるかどうかを確認します。 Date.before() メソッドの使用方法を示す次の Java プログラム。
DateExample6.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample6 {
public static void main(String... args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = simpleDateFormat.parse("2022/04/10 08:00:00");
Date date2 = simpleDateFormat.parse("2022/04/11 08:00:00");
boolean result1 = date1.before(date2);
boolean result2 = date2.before(date1);
System.out.println("Date 1: " + date1);
System.out.println("Date 2: " + date2);
System.out.println("Date 1 before Date 2: " + result1);
System.out.println("Date 2 before Date 1: " + result2);
}
}
出力は次のとおりです。Date 1: Sun Apr 10 08:00:00 ICT 2022
Date 2: Mon Apr 11 08:00:00 ICT 2022
Date 1 before Date 2: true
Date 2 before Date 1: false
日付が指定された日付より後のかどうかを確認する
Java は Date.after() メソッドを提供して、Date オブジェクトが指定された Date オブジェクトより後かどうかをチェックします。 Date.after() メソッドの使用方法を示す次の Java プログラム。
DateExample9.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample9 {
public static void main(String... args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = simpleDateFormat.parse("2021/03/05 07:00:00");
Date date2 = simpleDateFormat.parse("2022/04/11 07:00:00");
boolean result1 = date1.after(date2);
boolean result2 = date2.after(date1);
System.out.println("Date 1: " + date1);
System.out.println("Date 2: " + date2);
System.out.println("Date 1 after Date 2: " + result1);
System.out.println("Date 2 after Date 1: " + result2);
}
}
出力は次のとおりです。Date 1: Fri Mar 05 07:00:00 ICT 2021
Date 2: Mon Apr 11 07:00:00 ICT 2022
Date 1 after Date 2: false
Date 2 after Date 1: true
2 つの Date オブジェクトが等しいかどうかを比較する
Java では、Date.equals() メソッドを使用して、次の Java サンプル コードのように 2 つの Date オブジェクトが等しいかどうかを比較できます。
DateExample10.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample10 {
public static void main(String... args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = simpleDateFormat.parse("2022/04/11 07:00:00");
Date date2 = simpleDateFormat.parse("2022/04/11 07:00:00");
Date date3 = simpleDateFormat.parse("2022/04/11 08:00:00");
boolean result1 = date1.equals(date2);
boolean result2 = date1.equals(date3);
System.out.println("Date 1: " + date1);
System.out.println("Date 2: " + date2);
System.out.println("Date 3: " + date3);
System.out.println("Date 1 equal Date 2: " + result1);
System.out.println("Date 1 equal Date 3: " + result2);
}
}
出力は次のとおりです。Date 1: Mon Apr 11 07:00:00 ICT 2022
Date 2: Mon Apr 11 07:00:00 ICT 2022
Date 3: Mon Apr 11 08:00:00 ICT 2022
Date 1 equal Date 2: true
Date 1 equal Date 3: false
注文のために 2 つの Date オブジェクトを比較する
Java では、Date.compareTo() メソッドを使用して、Date オブジェクトが比較対象の Date オブジェクトの前、等しい、または後の場合に、-1、0、または 1 の値を返すことができます。
次の Java プログラムは、Date.compareTo() メソッドを使用して、順序付けのために 2 つの Date オブジェクトを比較する方法を示しています。
DateExample11.java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateExample11 {
public static void main(String... args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = simpleDateFormat.parse("2022/04/11 07:00:00");
Date date2 = simpleDateFormat.parse("2022/04/11 07:00:00");
Date date3 = simpleDateFormat.parse("2022/04/11 08:00:00");
int result1 = date1.compareTo(date2);
int result2 = date1.compareTo(date3);
int result3 = date3.compareTo(date1);
System.out.println("Date 1: " + date1);
System.out.println("Date 2: " + date2);
System.out.println("Date 3: " + date3);
System.out.println("Date 1 compare to Date 2: " + result1);
System.out.println("Date 1 compare to Date 3: " + result2);
System.out.println("Date 3 compare to Date 1: " + result3);
}
}
以下のような出力。Date 1: Mon Apr 11 07:00:00 ICT 2022
Date 2: Mon Apr 11 07:00:00 ICT 2022
Date 3: Mon Apr 11 08:00:00 ICT 2022
Date 1 compare to Date 2: 0
Date 1 compare to Date 3: -1
Date 3 compare to Date 1: 1
インスタンスを日付に変換
Java は、特定の Instance オブジェクトから新しい Date オブジェクトを作成するために使用できる静的メソッド Date.from() を提供します。次の Java プログラムは、Date.from() メソッドを使用してインスタンス オブジェクトを日付オブジェクトに変換する方法を示しています。
DateExample13.java
import java.time.Instant;
import java.util.Date;
public class DateExample13 {
public static void main(String... args) {
Instant instant = Instant.now();
Date date = Date.from(instant);
System.out.println("Instant: " + instant);
System.out.println("Date: " + date);
}
}
出力は次のとおりです。Instant: 2022-04-13T17:21:09.901Z
Date: Thu Apr 14 00:21:09 ICT 2022
日付をインスタンスに変換
Java では、Date.toInstant() メソッドを使用して、以下の Java コードとして Date オブジェクトを Instance オブジェクトに変換できます。
DateExample14.java
import java.time.Instant;
import java.util.Date;
public class DateExample14 {
public static void main(String... args) {
Date date = new Date();
Instant instant = date.toInstant();
System.out.println("Date: " + date);
System.out.println("Instant: " + instant);
}
}
出力は次のとおりです。Date: Thu Apr 14 00:21:40 ICT 2022
Instant: 2022-04-13T17:21:40.733Z
カレンダーを日付オブジェクトに変換
Calendar オブジェクトを Date オブジェクトに変換するには、Calendar.getTime() メソッドを次の Java プログラムとして使用できます。
DateExample15.java
import java.util.Calendar;
import java.util.Date;
public class DateExample15 {
public static void main(String... args) {
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println(date);
}
}
以下のような出力。Thu Apr 14 00:24:35 ICT 2022