0

XP を実行しているマシンでこの例外を受け取りますが、Windows 7 では問題ありません。次のように日時をフォーマットしようとしていますが、

dr.BeginEdit();                                     
dr["Pdate"] = ((DateTime)dr[dc]).ToString("dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
dr.EndEdit();
dr.AcceptChanges();

「2012-03-04 00:00:00.000」では問題なく動作していますが、問題は「2011-06-22 00:00:00.000」です

4

5 に答える 5

4

web.configファイルに以下を追加したところ、問題は解決しました。

<globalization culture="en-GB"/>

http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

于 2012-07-06T01:37:04.347 に答える
3

Convert.ToDateTime を使用するときは、明示的なカルチャを使用する必要があります。影響を受けるマシンでは、デフォルトのカルチャが異なる可能性があります。

http://msdn.microsoft.com/en-us/library/ms130987.aspx

于 2012-06-22T09:41:09.287 に答える
2

このエラーは、月と日を間違えたことが原因である可能性があります。

日付形式がわかっている場合は、使用してみてくださいDateTime.ParseExact

http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx

例えば:

DateTime dt = DateTime.ParseExact(dr["Pdate"].ToString(), "yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture);
于 2012-06-22T09:44:04.597 に答える
1

次のコードを使用できます。これは私に役立ちます。あなたにも役立つと確信しています。

dr.BeginEdit();                                     
dr["Pdate"] = Convert.ToDateTime(dr[dc]).ToString("your format"); 
dr.EndEdit();
dr.AcceptChanges();
于 2012-06-22T11:27:19.330 に答える
0

DateTime列に文字列を格納しようとしています。このコードを試してください:

dr.BeginEdit();                                     
dr["Pdate"] = (DateTime)dr[dc]; // No need to convert this to a string :)
dr.EndEdit();
dr.AcceptChanges();
于 2012-06-22T10:41:50.517 に答える