2017-03-05 6 views
0

This is the error. sam code parse same value in my other project, but not working in current project 例外タイプ「にSystem.FormatExceptionが」がmscorlib.dll 追加情報で発生しました:それは別のプロジェクトでは動作しますが、そうでない場合、文字列はヴァリデ日付時刻としてのDateTime解析エラー

DateTime temp = DateTime.ParseExact(dataGridView1.Rows[i].Cells["Date/Time"].Value.ToString(), "dd/MM/yyyy HH:mm", null); 
       DateTime tempnext = DateTime.ParseExact(dataGridView1.Rows[i + 1].Cells["Date/Time"].Value.ToString(), "dd/MM/yyyy HH:mm", null); 
+2

エラーが発生するコードを投稿してください – CaptainHere

+0

これらの小さな画像ではほとんど何も見えません。デバッガを使用して、例外がスローされたときに解析しようとしている値を調べます。 –

+0

@CaptainMagikarpそこに行きます...もう一度チェックしてください –

答えて

1

を認識していなかった、それCulture号になる可能性があります。

あなたは試すことができます:

DateTime dateTime = DateTime.ParseExact(dataGridView1.Rows[i].Cells["Date/Time"].Value.ToString(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); 

プログラム全体が破壊しないように、あなたは、これは誰かが入力した無効な値ちょうど1である場合には、TryParse()またはTryParseExact()を検討する必要がありますが。

+0

私は私のために役立つかもしれません –

1
あなたは を使用してフォーマットdd/MM/yyyy HH:mmと 'DateTime.Parse 正確()'ている

が、あなたの入力は専用形式HH:mまたはH:mだろう13:1です。

あなたがParseExactを使用しているので、指定したとして、それが機能するためにあなたが05/03/2017 13:01などの入力が必要になりますので、入力は、まったく同じ形式でなければなりません。

通常のDateTime.Parse()または既に提案したように、DateTime.TryParseExact()を使用して、アプリケーションを中断することなく入力を検証することを検討してください。

+0

申し訳ありません入力はあなたが14/10/2017 13:01のように述べたのと同じです。私はちょうど入力から13:01を得たいと思う。 –

+0

@MuhammadHamza:それから私達はどこから始めたのか。あなたはそれが確かに**正確な**入力ですか?それは 'Autos'ウィンドウでそう言いますか? - あなたが私がスクリーンショットから作ることができるものとは異なるフォーマットを使用しているのが分かります。問題の現在のものがうまくいくはずです。 –

+0

それは文化の問題でした...途中で...あなたは非常に有益です –