データ操作

[C#] 例外を発生させずにstring型→DateTime型に変換する(.TryParse、.TryParseExact)

例外を発生させずにstring型からDateTime型に変換するには、
.TryParse().TryParseExact()を使用します。

サンプル

例1)例外を発生させずにstring型をDateTime型に変換する

//変数定義
DateTime d;

//「yyyy/MM/dd」形式の日付文字列をDateTimeに変換する
bool b = DateTime.TryParse("2021/04/19", out d);
b → ture、d → 2021/04/19 00:00:00

//「yyyy/MM/dd HH:mm:ss」形式の日付文字列をDateTimeに変換する
bool b = DateTime.TryParse("2021/04/19 10:20:30", out d);
b → ture、d → 2021/04/19 10:20:30

//不正な日付文字列の場合
bool b = DateTime.TryParse("2021/13/32", out d);
b → false、d → 0001/01/01 00:00:00

例2)例外を発生させずにstring型をDateTime型に変換する

日付フォーマット形式を指定して変換する場合は、TryParseExactを使用します。

//変数定義
DateTime d;

//「yyyyMMdd」形式の日付文字列をDateTimeに変換する
bool b = DateTime.TryParseExact(
  "20210419", "yyyyMMdd", null, DateTimeStyles.None, out d);
b → true、d → 2021/04/19 00:00:00

//不正な日付文字列の場合
bool b = DateTime.TryParseExact(
  "20211332", "yyyyMMdd", null, DateTimeStyles.None, out d);
b → false、d → 0001/01/01 00:00:00

備考

  • TryParseの戻り型はbool型です。
    変換に成功した場合はtrue、失敗した場合はfalseを返します。
  • 変換時に例外が発生しても構わない場合は.Parse.ParseExactをご使用ください。

関連記事

-データ操作
-