DateTimeオブジェクトの形式を設定するにはどうすればよいですか?
できません。DateTime
値にはフォーマットがありません。int
またはdouble
値にはフォーマットがあります。文字列との間で変換する場合は、ここでフォーマット情報を指定します。
代わりに、パラメーター化されたSQLを使用DateTime
し、最初から値を文字列に変換しないようにする必要があります。これは一般的なベストプラクティスです。SQL文字列に値を含めないでください。パラメータ化されたSQLには複数の利点があります。
- SQLインジェクション攻撃を回避します
- このような変換の問題を回避します
- コード(SQL)をデータ(パラメーター値)から分離します
また、を使用する代わりにConvert.ToDateTime
、解析時に予想される形式を指定することをお勧めします。例えば:
timeStamp = DateTime.ParseExact(y.InnerText,
"dd/MM/yyyy HH:mm:ss",
CultureInfo.InvariantCulture);
基本的に、私が適用しようとしている2つのルールは次のとおりです。
- 必要のない場所で変換を実行することは避けてください。すべてのシステムが可能な限り適切なデータ型を使用していることを確認すれば、多くの場合、変換をまったく行う必要はありません。
- 文字列表現との間で変換する必要がある場合は、消費/生成する表現について非常に明確にしてください。機械可読値の場合、通常は不変のカルチャと、場合によってはカスタムの日付/時刻形式を使用する必要があります。人間が読める形式の値の場合、通常はユーザーの文化と標準の日付/時刻形式を使用する必要があります。