1

文字列を DateTime に変換しようとしていますが、あるコンピューターでは正常に動作しますが、別のコンピューターではうまくいきません! それが動作するコンピューターは32ビットのWindows 7を実行しており、動作しないコンピューターは64ビットのWindows 7を実行しています。タラは次のとおりです。

            for (int i = 0; i < (lines / 5); i++)
            {
                MessageBox.Show(stringArray[(i * 5) + 4]);
                TransactionList.Add(new Transaction
                {
                    TotalEarned = Convert.ToDouble(stringArray[(i * 5)]),
                    TotalCost = Convert.ToDouble(stringArray[(i * 5) + 1]),
                    TotalHST = Convert.ToDouble(stringArray[(i * 5) + 2]),
                    Category = stringArray[(i * 5) + 3],
                    HoursSince2013 = Convert.ToDateTime(stringArray[(i * 5) + 4])
                });
            }

これMessageBoxは、どの文字列が変換に失敗しているかを確認するためだけのもので、最初の反復では次のようになります。10/26/2013 11:58:03 AM

これが私のコンピューターの1つで変換に失敗する理由の手がかりはありますか?? 私は完全に混乱しています...

ありがとう!ネイサン

4

1 に答える 1

6

これが私のコンピューターの1つで変換に失敗する理由の手がかりはありますか??

最も一般的な原因は、文化の違いです。特定のカルチャを指定していないため、システムの現在のカルチャが使用されます。

使用してみてください:

HoursSince2013 = Convert.ToDateTime(stringArray[(i * 5) + 4], CultureInfo.InvariantCulture)
于 2013-11-04T18:16:38.493 に答える