Java で日付を文字列に変換する方法

Mohammad Irfan 2023年10月12日
  1. Java の SimpleDateFormat を用いて Date を文字列に変換する
  2. Java の DateFormatUtils クラスを使って DateString に変換する
  3. Java の DateTimeFormatter を用いて Date を文字列に変換する
  4. Java でタイムゾーンを指定して Date を文字列に変換する
  5. Java の String クラスを用いて Date を文字列に変換する
Java で日付を文字列に変換する方法

このチュートリアルでは、Java で日付を文字列に変換する方法と、それを理解するためのコード例を紹介します。

Java には、SimpleDateFormatDateFormatUtilsDateTimeFormatter クラスなど、日付を文字列に変換するのに役立つクラスやメソッドがいくつか用意されています。

Java の SimpleDateFormat を用いて Date を文字列に変換する

ここでは、SimpleDateFormat クラスの format() メソッドを用いて、Java の util.Date オブジェクトから文字列を取得します。

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) throws ParseException {
    DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
    Date date = new Date();
    String dateToStr = dateFormat.format(date);
    System.out.println("Date is " + dateToStr);
  }
}

出力:

Date is 21/09/2020 08:48:01

Java の DateFormatUtils クラスを使って DateString に変換する

Apache ライブラリを使用している場合は、DateFormateUtils クラスの format() メソッドを使用してください。Java で java.util.Date を文字列に変換して文字列を返します。

import java.text.ParseException;
import java.util.Date;
import org.apache.commons.lang3.time.DateFormatUtils;

public class SimpleTesting {
  public static void main(String[] args) throws ParseException {
    Date date = new Date();
    String dateToStr = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:SS");
    System.out.println("Date is " + dateToStr);
  }
}

出力:

Date is 2020-09-21 08:51:203

Java の DateTimeFormatter を用いて Date を文字列に変換する

ここでは、ofPattern() メソッドを引数にとり、日付を文字列で表現したものを返す format() メソッドを用います。以下の例を参照してください。

import java.text.ParseException;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) throws ParseException {
    Date date = new Date();
    String dateToStr =
        date.toInstant().atOffset(ZoneOffset.UTC).format(DateTimeFormatter.ofPattern("dd-MM-yyyy"));
    System.out.println("Date is " + dateToStr);
  }
}

出力:

Date is 21-09-2020

Java でタイムゾーンを指定して Date を文字列に変換する

ここでは、DateTimeFormatter クラスの format() メソッドを用いて、java.util.date から変換後の文字列を取得します。これは、ofPattern() メソッドで日付と時刻の書式を指定しているためです。

import java.text.ParseException;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) throws ParseException {
    Date date = new Date();
    DateTimeFormatter format =
        DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss:SSS Z").withZone(ZoneId.systemDefault());
    String dateToStr = format.format(date.toInstant());
    System.out.println("Date is " + dateToStr);
  }
}

出力:

Date is 2020-09-21 09:10:23:991 +0530

Java の String クラスを用いて Date を文字列に変換する

これは、java.util.date オブジェクトの文字列を取得する最も簡単な方法の一つです。ここでは、指定されたフォーマットに基づいて日付をフォーマットする String クラスの format() メソッドを利用します。以下の例を参照してください。

import java.text.ParseException;
import java.util.Date;

public class SimpleTesting {
  public static void main(String[] args) throws ParseException {
    Date date = new Date();
    String dateToStr = String.format("%1$tY-%1$tm-%1$td", date);
    System.out.println("Date is " + dateToStr);
  }
}

出力:

Date is 2020-09-21

関連記事 - Java String

関連記事 - Java DateTime