SimpleDateFormatで「MMM」を指定すると、月の書き方が短縮系でもそうでなくてもParseしてくれる。
コード
public static void main(String[] args) throws Exception {
{
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
System.err.println(sdf.parse("01-June-2020"));// OK
}
{
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
System.err.println(sdf.parse("01-Jun-2020"));// OK
}
{
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
System.err.println(sdf.parse("01-September-2020"));// OK
}
{
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
System.err.println(sdf.parse("01-Sep-2020")); // OK
}
{
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
System.err.println(sdf.parse("01-Sept-2020")); // NG
}
}
結果
Mon Jun 01 00:00:00 JST 2020
Mon Jun 01 00:00:00 JST 2020
Tue Sep 01 00:00:00 JST 2020
Tue Sep 01 00:00:00 JST 2020
Exception in thread "main" java.text.ParseException: Unparseable date: "01-Sept-2020"
at java.text.DateFormat.parse(DateFormat.java:366)
at hello.date.HelloSimpleDateFormat2.main(HelloSimpleDateFormat2.java:28)