JavaでDateFormatを使用して月の完全形式の文字列を解析する方法は? 質問する

JavaでDateFormatを使用して月の完全形式の文字列を解析する方法は? 質問する

私はこれを試しました:

DateFormat fmt = new SimpleDateFormat("MMMM dd, yyyy");
Date d = fmt.parse("June 27, 2007");

エラー:

Exception in thread "main" java.text.ParseException: Unparseable date: "June 27, 2007"

Javaのドキュメントでは、完全な形式に一致させるには4文字を使う必要があると書かれています。うーん短縮された月をうまく活用「ジュン」ただし、完全な形式に一致する必要があります。

テキスト: 書式設定では、パターン文字の数が 4 以上の場合には完全な形式が使用されます。それ以外の場合には、使用可能な場合は短縮形または省略形が使用されます。解析では、パターン文字の数に関係なく、両方の形式が受け入れられます。

https://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

ベストアンサー1

おそらく、月の名前が「January」、「February」などではなく、現地の言語の他の単語になっているロケールを使用していると思われます。

使用したいロケールを指定してみてください。たとえば、次のようになりますLocale.US

DateFormat fmt = new SimpleDateFormat("MMMM dd, yyyy", Locale.US);
Date d = fmt.parse("June 27,  2007");

また、日付文字列に余分なスペースがありますが、実際には結果には影響しません。どちらの方法でも機能します。

おすすめ記事