0

時間値を持つ文字列を持つデータの行がロードされたグリッドビューがあります(「10:30 PM」など)。グリッドの各行を考慮して foreach ループを使用してすべてのグリッド データをデータベースに挿入しようとすると、SQL データベースで日時変数として時間値を持つ文字列を挿入したいと考えています。だから私は文字列を次のように変換しようとしました

Convert.ToDateTime(row.Cells(4).Value)

ただし、フォーマット例外が発生します

文字列は有効な DateTime として認識されませんでした。

この文字列を日時に変換するアイデア

4

2 に答える 2

0

日付/時刻型はさまざまな形式を受け入れるため、VB.NET が正確に何を意味するかを認識できるようにするために、いくつかの追加情報を追加する必要があります。サンプル (正しい/間違った) 代替案:

Dim test1 As Date = Convert.ToDateTime("1-13-2000", New System.Globalization.CultureInfo("en-US")) 'OK
Dim test2 As Date = Convert.ToDateTime("1-13-2000", New System.Globalization.CultureInfo("en-GB")) 'Error
Dim test3 As Date = Date.ParseExact("10:30 pm", "hh:mm tt", System.Globalization.CultureInfo.InvariantCulture) 'OK
Dim test4 As Date = Date.ParseExact("9:30 pm", "hh:mm tt", System.Globalization.CultureInfo.InvariantCulture) 'ERROR

Convert.ToDateTimeCultureInfo対応する;の形式を考慮します。何も指定しない場合は、指定されたコンピューターでデフォルトのものを使用すると想定されます。最善の方法は、常に必要なカルチャを指定することです。あなたが持っている他の選択肢は、例えばを介して正確なフォーマットを伝えることですParseExact

于 2013-10-24T07:34:23.457 に答える