言語
日本語
English

Caution

お使いのブラウザはJavaScriptが無効になっております。
当サイトでは検索などの処理にJavaScriptを使用しています。
より快適にご利用頂くため、JavaScriptを有効にしたうえで当サイトを閲覧することをお勧めいたします。

Java辞典

  1. トップページ
  2. Java辞典
  3. DateTimeFormatter.ofPattern() / 日付.format()

DateTimeFormatter.ofPattern() / 日付.format()

対応: Java 8(2014)

日時を指定したパターンの文字列に変換(フォーマット)したり、文字列から日時オブジェクトに変換(パース)したりするクラスです(Java 8+)。DateTimeFormatterLocalDateLocalDateTime などと組み合わせて使います。

構文

// フォーマットパターンを指定してフォーマッターを作成します
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");

// 日時を文字列に変換します
String str = 日時オブジェクト.format(formatter);

// 文字列から日付を作成します
LocalDate date = LocalDate.parse(文字列, formatter);

// 文字列から日時を作成します
LocalDateTime dateTime = LocalDateTime.parse(文字列, formatter);

メソッド一覧

メソッド・パターン概要
DateTimeFormatter.ofPattern(String)指定したパターン文字列でフォーマッターを作成します。
format(DateTimeFormatter)日時オブジェクトを指定したフォーマッターで文字列に変換します。
LocalDate.parse(String, formatter)文字列を指定したフォーマッターで LocalDate に変換します。
yyyy年(4桁)。例: 2025
MM月(2桁ゼロ埋め)。例: 04
dd日(2桁ゼロ埋め)。例: 01
HH時(24時間表記・2桁ゼロ埋め)。例: 14
mm分(2桁ゼロ埋め)。例: 30
ss秒(2桁ゼロ埋め)。例: 00

サンプルコード

sample_DateTimeFormatterExample.java
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

class DateTimeFormatterExample {
    public static void main(String[] args) {
        // LocalDate を日本式にフォーマットします
        LocalDate date = LocalDate.of(2025, 4, 1);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
        String formatted = date.format(formatter);
        System.out.println(formatted); // 『2025年04月01日』と出力されます。

        // LocalDateTime を日時形式にフォーマットします
        LocalDateTime now = LocalDateTime.of(2025, 4, 1, 14, 30, 0);
        DateTimeFormatter dtFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        System.out.println(now.format(dtFormatter)); // 『2025/04/01 14:30:00』と出力されます。

        // 文字列を LocalDate にパースします
        String dateStr = "2025-12-25";
        LocalDate christmas = LocalDate.parse(dateStr);
        System.out.println(christmas.getMonthValue()); // 『12』と出力されます。

        // カスタムパターンでパースします
        String customStr = "01/04/2025";
        DateTimeFormatter customFmt = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        LocalDate customDate = LocalDate.parse(customStr, customFmt);
        System.out.println(customDate.getYear()); // 『2025』と出力されます。

        // 定義済みフォーマッターを使います
        System.out.println(date.format(DateTimeFormatter.ISO_LOCAL_DATE)); // 『2025-04-01』と出力されます。
    }
}
DateTimeFormatterExample.java
javac DateTimeFormatterExample.java
java DateTimeFormatterExample
2025年04月01日
2025/04/01 14:30:00
12
2025
2025-04-01

概要

パターン文字列では大文字・小文字が意味を持ちます。特に月は MM(数字)と MMM(省略名: Jan など)、MMMM(フル名: January など)で異なります。パターン文字列を誤ると DateTimeParseException がスローされるため、入力する文字列のフォーマットとパターンを一致させてください。

ISO 8601 形式(yyyy-MM-dd)の文字列は LocalDate.parse(文字列) でフォーマッター省略が可能です。

日付の取得・生成については『LocalDate.now() / of() / getYear()』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。