0

私は常にこのコードのサンプルを見ていますが、いつどのコードを使用するかを正確に知ることはできません。

解析する日付があるとしましょう:13 December 2011

それはで行うことができます

 var g=DateTime.ParseExact("13 December 2011","d MMMM yyyy",CultureInfo.GetCultureInfo("en-US"),DateTimeStyles.None );

またはによって

 Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); 
 var g=DateTime.ParseExact("13 December 2011","d MMMM yyyy",null,DateTimeStyles.None );

どちらも同じ結果を提供します。

いつどちらを使うべきですか?

4

4 に答える 4

2

最初の例では、その特定の操作にそのカルチャを使用します。

2番目の例では、実行中のスレッドのカルチャを変更し、その操作と、スレッドカルチャが変更されるまで現在のカルチャの影響を受ける後続の操作に影響を与え ます。

したがって、状況に適したものを使用してください。

于 2012-10-09T16:16:37.177 に答える
2

その解析の結果は同じですが、スレッドの現在のカルチャを設定すると、後で行う他のカルチャに依存する操作にも影響します。

于 2012-10-09T16:17:09.453 に答える
1

それが最初のはずです。2つ目は、現在のスレッドでアプリケーションの現在のカルチャを変更した場合、で異なるカルチャを使用している場合、エラーが発生する可能性がありますUS

于 2012-10-09T16:17:01.280 に答える
1

最初の行は、ParseExactメソッドで指定されたカルチャを2番目の引数として使用します。これにより、スレッドのカルチャが異なっていても、en-USカルチャの日付が解析されます。2つ目はスレッドのカルチャを変更し、ParseExactの呼び出しは前の行で設定された新しいカルチャを使用します。

于 2012-10-09T16:19:49.630 に答える