ここではTryParseメソッドを使って、文字列が日付に変換できるかチェックする方法を紹介します。

DateTime.TryParseメソッド

DateTime.TryParseメソッドは、日付の文字列がDateTime型に変換できるかチェックしてから変換します。
第1引数にはチェック対象のstring型の文字列、第2引数には変換された値を格納するDateTime型の変数を定義します。また、変換が成功した場合はtrue、変換が失敗した場合はfalseを返します。もし変換に失敗した場合は第2引数に「0001/01/01 0:00:00」が格納されます。
Parseメソッドで日付に変換して例外が発生するか調べる方法もありますが、TryParseメソッドは例外を発生しないで、判定結果と変換した値を取得できます。

構文

Boolean型変数 = DateTime.TryParse({チェック対象の文字列}, out {変換された値});

以下は DateTime.TryParseメソッドで変換の判定結果を出力する例です。

string dt = "2021/06/31 12:15:30";
DateTime outValue;
Boolean ret;

ret = DateTime.TryParse(dt, out outValue);
Console.WriteLine(ret);
// 実行結果:False


以下は if~else文を組み合わせた例です。変換できた場合は変換した日時を出力します。

string dt = "2021/06/30 12:15:30";
DateTime outValue;

if (DateTime.TryParse(dt, out outValue) == true)
{
    Console.WriteLine($"{dt}は{outValue}に変換しました");
}
else
{
    Console.WriteLine($"{dt}は日付に変換できませんでした");
}
//実行結果:2021/06/30 12:15:30は2021/06/30 12:15:30に変換しました


以上、C#のTryParseメソッドを使って、文字列が日付に変換できるかチェックする方法について解説しました。