Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで日付オブジェクトを作成する方法【Date・SimpleDateFormat・LocalDate】

Javaで日付(Date)オブジェクトを作成する方法はいくつかあります。この記事では、代表的な3つの方法である「java.util.Dateクラス」「SimpleDateFormatクラス」「LocalDateクラス」を使った日付オブジェクトの生成方法を、サンプルコードと実行結果とともにわかりやすく解説します。


1. Dateクラスを使って現在日時のオブジェクトを作成する

java.util.Date クラスの Date() コンストラクタを使用すると、Dateオブジェクトを作成できます。このコンストラクタで生成されるオブジェクトは、呼び出した時点の現在日時を表します。

サンプルコード

import java.util.Date;
public class CreateDate {
    public static void main(String args[]) {
        Date date = new Date();
        System.out.print(date);
    }
}

実行結果

Thu Nov 02 15:43:01 IST 2018

2. SimpleDateFormatクラスで文字列から日付オブジェクトを作成する

文字列形式の日付データをDateオブジェクトに変換したい場合は、java.text.SimpleDateFormat クラスが便利です。parse() メソッドを使うことで、指定したフォーマットの日付文字列を解析し、その日付を表すDateオブジェクトを生成できます。

サンプルコード

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
    public static void main(String args[]) throws ParseException {
        String date_string = "26-09-1989";
        //SimpleDateFormatクラスのインスタンスを生成
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
        //日付文字列をDateオブジェクトにパース
        Date date = formatter.parse(date_string);
        System.out.println("Date value: "+date);
    }
}

実行結果

Date value: Tue Sep 26 00:00:00 IST 1989

フォーマット文字列「dd-MM-yyyy」は「日-月-年」の並びを意味します。入力文字列の形式とフォーマット指定が一致していない場合、ParseExceptionがスローされるため注意してください。

3. LocalDateクラスを使ってタイムゾーンなしの日付オブジェクトを作成する

java.time.LocalDate クラスは、Java 8で導入された日付API(Date-Time API)の一つです。Dateクラスと似ていますが、時刻やタイムゾーンの情報を持たない日付のみを扱う点が特徴で、現在ではDateクラスの代わりにこちらを使うことが推奨されています。

主なメソッドは以下の通りです。

  • now():現在の日付を表すLocalDateオブジェクトを返します。
  • of():年・月・日の値を引数として受け取り、対応するLocalDateオブジェクトを返します。
  • parse():日付文字列を引数として受け取り、その日付を表すLocalDateオブジェクトを返します。

サンプルコード

import java.time.LocalDate;
public class Test {
    public static void main(String args[]) {
        LocalDate date1 = LocalDate.of(2014, 9, 11);
        System.out.println(date1);
        LocalDate date2 = LocalDate.parse("2007-12-03");
        System.out.println(date2);
        LocalDate date3 = LocalDate.now();
        System.out.println(date3);
    }
}

実行結果

2014-09-11
2007-12-03
2020-11-05

まとめ

Javaで日付オブジェクトを作成するには、目的に応じて使い分けるのがポイントです。現在日時が必要な場合は Dateクラス、任意の形式の日付文字列を変換する場合は SimpleDateFormatクラス、タイムゾーンに依存しない日付処理を行う場合は LocalDateクラス が適しています。特に新規開発では、スレッドセーフで直感的に扱えるLocalDateなどのDate-Time APIを採用することをおすすめします。

  1. JavaScriptで日付文字列からDateオブジェクトを作成する方法

    日付文字列からDateオブジェクトを作成する基本JavaScriptでは、Dateコンストラクタに引数を渡すだけで、簡単に日付オブジェクトを作成できます。var date = new Date(2018, 1, 1);ここで重要なポイントは、月の指定が「0」から始まるインデックスになっていることです。つまり、0が1月(Jan)、1が2月(Feb)、2が3月(Mar)というように対応します。この仕様を忘れると、意図した日付より1ヶ月ずれた結果になってしまうため注意が必要です。サンプルコード以下のコードは、2018年1月1日のDateオブジェクトを作成し、画面に出力する例です。月の部分が「0」にな

  2. JavaScriptでDateオブジェクトを作成する方法をわかりやすく解説

    JavaScriptで日付や時刻を扱うには、Dateオブジェクトを使用します。new Date()コンストラクタを呼び出すだけで、現在の日時に基づいたDateオブジェクトを簡単に生成できます。以下に、ボタンをクリックすると現在の日時を持つDateオブジェクトを作成し、画面に表示するサンプルコードを示します。コード例<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name="viewport"