例外を発生させずに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をご使用ください。