【Java】DateTimeFormatterの月(MMM)が英語表記にならない時の対処法

技術メモ

DateTimeFormatter を使っていた際に、パターン MMM によって月が英語表記にならない問題に直面していました(例えば「Sep」ではなく「9月」になってしまう)。

結論

DateTimeFormatter.ofPatternの引数にLocale.USを渡してあげたら解決しました。

import java.util.Locale;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) throws Exception {

        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd MMM yyyy", Locale.US);
        LocalDate ld = LocalDate.parse("2021-09-23", dtf);
    	
    	  System.out.println(ld.format(dtf));
        //出力結果 23 Sep 2021

    }
}

フォーマッターをUS仕様にしてあげたことで他の日付パターンも全て英表記になりました。

参考
Java(tm) Platform Standard Edition 8 DateTimeFormatter

コメント

タイトルとURLをコピーしました