Java11 SimpleDateFormatで文字列の日付を厳密にチェックをする
環境
Java SE 11
Eclipse 4.26.0
書式
DateFormat df = new SimpleDateFormat(“yyyy/MM/dd");
//厳密にチェックする
df.setLenient(false);
String 変数名 = df.format(df.parse(文字列));
df.parseでParseExceptionがメッセージをThrowする
使用例
package com.arkgame.study; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; public class ArktestDemo { public static void main(String[] args) { String s1 = "2023/02/29"; System.out.println("日付1のチェック結果: " + isDate(s1)); String s2 = "2023/01/29"; System.out.println("日付2のチェック結果: " + isDate(s2)); } public static boolean isDate(String str) { boolean res = false; try { DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); df.setLenient(false); //これで厳密にチェックしてくれるようになる String s2 = df.format(df.parse(str)); //df.parseでParseExceptionがThrowされる System.out.println(s2); res = true; } catch (ParseException p) { res = false; //p.printStackTrace(); } return res; } }
実行結果
日付1のチェック結果: false
2023/01/29
日付2のチェック結果: true