私はこれを試しました:
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");
また、日付文字列に余分なスペースがありますが、実際には結果には影響しません。どちらの方法でも機能します。