【c#】datetime.tryparse()のバグ(?)について

DateTime.TryParse()を使用して日付変換の可否チェック機能を実装していたところ、バグ(?)のような仕様が見つかりました。

DateTime dt;
DateTime.TryParse("2019-04-18s", out dt)

上記を実行すると、DateTime.TryParseの戻り値がtrueにり、変数dtには”3944-04-18″が格納されてしまいます。

対策として、SQL文のConvert関数を使用すればエラーとして識別されるようです。

SELECT CONVERT(date,'2019-04-18s')

日付チェックした値はSQLServerへ登録しようと思っていたところだったので、Convert関数でチェックを行うことにしました。

タイトルとURLをコピーしました