質問:
日付のみと日時の両方の形式を考慮して、ユーザーが入力した文字列が指定された日付形式と一致するかどうかを検証する Java メソッド。
解決策:
さまざまなアプローチを評価した後、私たちは SimpleDateFormat クラスを使用することにしました。詳細な実装は次のとおりです:
<code class="java">import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateFormatter { public static boolean isValidFormat(String format, String value) { Date date = null; SimpleDateFormat sdf = new SimpleDateFormat(format); try { date = sdf.parse(value); if (!value.equals(sdf.format(date))) { date = null; } } catch (ParseException e) { // Date parsing failed } return date != null; } public static void main(String[] args) { System.out.println("isValid - dd/MM/yyyy with 20130925 = " + isValidFormat("dd/MM/yyyy", "20130925")); System.out.println("isValid - dd/MM/yyyy with 25/09/2013 = " + isValidFormat("dd/MM/yyyy", "25/09/2013")); System.out.println("isValid - dd/MM/yyyy with 25/09/2013 12:13:50 = " + isValidFormat("dd/MM/yyyy", "25/09/2013 12:13:50")); System.out.println("isValid - yyyy-MM-dd with 2017-18--15 = " + isValidFormat("yyyy-MM-dd", "2017-18--15")); } }</code>
使用法:
必要な日付形式を最初の引数として、入力文字列を 2 番目の引数として isValidFormat メソッドに渡します。このメソッドは、入力文字列が指定された形式に一致するかどうかを示すブール値を返します。
サンプル出力:
isValid - dd/MM/yyyy with 20130925 = false isValid - dd/MM/yyyy with 25/09/2013 = true isValid - dd/MM/yyyy with 25/09/2013 12:13:50 = false isValid - yyyy-MM-dd with 2017-18--15 = false
以上がJava で日付文字列を特定の形式に対して検証するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。