Java

Java 文字列が正しい日時を表しているかの判定

はじめに

事前に準備する外部ライブラリ等はありません。
JavaSEに含まれるjava.text.SimpleDateFormatクラスを使用します。

実装例

サンプルでは、動作確認しやすいようにmainメソッドで実行できるようにしてあります。

DateChecker.java

import java.text.ParseException;
import java.text.SimpleDateFormat;

/**
 *
 * @author tool-taro.com
 */
public class DateChecker {

	public static void main(String[] args) {

		//判定したい文字列
		String source = "2016/02/02 12:34:56";
		//判定したいパターン
		String pattern = "yyyy/MM/dd HH:mm:ss";

		//判定処理
		boolean result = false;
		try {
			SimpleDateFormat formatter = new SimpleDateFormat(pattern);
			//存在しない日(例 2017/02/29)の場合はfalseとする
			result = source.equals(formatter.format(formatter.parse(source)));
		}
		catch (ParseException e) {
		}
		//標準出力
		System.out.format("判定結果=%1$b", result);
	}
}

動作確認

$ javac DateChecker.java
$ java DateChecker
$ 判定結果=true

環境

  • 開発
    • Windows 10 Pro
    • JDK 1.8.0_74
    • NetBeans IDE 8.1
  • 動作検証
    • CentOS Linux release 7.2
    • JDK 1.8.0_74

Webツールも公開しています。
Web便利ツール@ツールタロウ

スポンサーリンク