次のコードがFormatExceptionを生成するのはなぜですか?
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", null);
おそらく、コードがMVC3サイト実行ロジックの一部としてIIS 7.5 Expressで実行されているという事実と関係がありますか?
次のコードがFormatExceptionを生成するのはなぜですか?
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", null);
おそらく、コードがMVC3サイト実行ロジックの一部としてIIS 7.5 Expressで実行されているという事実と関係がありますか?
次に、CultureInfoを含める必要があります。
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", new CultureInfo("en-US"));
フォーマット文字列のスラッシュはカルチャに依存し、CultureInfoを渡さない場合は、現在のカルチャが使用されます。使用することもできCultureInfo.InvariantCulture
、動作します。JonSkeetがここでいくつかの詳細な説明を提供します。
あなたの文化に依存します、それを方程式から取り除くために....
DateTime.ParseExact("03/01/2012", "dd/MM/yyyy", CultureInfo.InvariantCulture);
ドキュメントによると、次のいずれかの条件が与えられると、aFormatException
がスローされます。
public static DateTime ParseExact(
string s,
string format,
IFormatProvider provider
)
nullを渡すと、デフォルトで現在のスレッドのカルチャになっているIFormatProvider
と思います。これはReflectorで確認する必要があります。渡したかった理由はありますnull
か?
アップデート:
.NET Reflectorで確認したところ、デフォルトで現在のスレッドのになっていますDateTimeFormatInfo
。ここにコードを投稿できるかどうかわかりません。