1

次のコードを使用して、CurrentCulture の LongTimePattern プロパティを設定しようとしています。

System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern = "HH:mm:ss";

InvalidOperationException: Instance is read-only を取得しています。

どうすれば変更できますか?LongTimePatternどの文化に対しても 24 時間形式を強制的に表示したいと考えています。

4

3 に答える 3

3

System.Threading.Thread.CurrentThread.CurrentCulture を変更すると、LongTimePattern が自動的に更新されます。

現在割り当てられているカルチャ情報を更新することはできませんが、新しいものを作成して現在のカルチャに割り当てます。

System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("es-ES");
c.DateTimeFormat.LongTimePattern = "h-mm-ss";
Thread.CurrentThread.CurrentCulture = c;
于 2012-04-26T11:50:05.030 に答える
1

1 つまたは 2 つの値を変更し、残りを同じに保ちたい場合は、Clone を使用して現在のカルチャの書き込み可能なコピーを取得できます。次に例を示します。

CultureInfo i;
i = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
i.DateTimeFormat.LongTimePattern = "HH:mm:ss";
i.DateTimeFormat.ShortTimePattern = "HH:mm";
Thread.CurrentThread.CurrentCulture = i;
i = (CultureInfo)Thread.CurrentThread.CurrentUICulture.Clone();
i.DateTimeFormat.LongTimePattern = "HH:mm:ss";
i.DateTimeFormat.ShortTimePattern = "HH:mm";
Thread.CurrentThread.CurrentUICulture = i;

これは、開始カルチャを取得するためにカルチャ文字列を使用するよりも優れているようです。

于 2012-06-13T02:03:20.123 に答える
0

カルチャを変更できるかどうかはわかりませんが、変更を許可すると、そもそもカルチャを使用する目的が無効になります。そのカルチャで使用される一般的に受け入れられている形式で日付と時刻を表示する必要があります。

別の形式で表示したい場合は、いつでもカスタムの日付/時刻フォーマッタを使用できます。

利用可能なすべてのプリセット形式と、独自の形式を表示する方法の詳細については、http://msdn.microsoft.com/en-us/library/az4se3k1.aspxを参照してください。

于 2012-04-26T11:29:42.760 に答える