2012-04-26 22 views
0

私は次のコードでのCurrentCultureのLongTimePatternプロパティを設定しようとしている:CurrentCulture.DateTimeFormat.LongTimePattern読み取り専用

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

と私はInvalidOperationExceptionがを取得しています: インスタンスは読み取り専用です。

どうすれば変更できますか? LongTimePatternにどのカルチャーの24時間形式を表示させたいですか?

答えて

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; 
+0

ありがとうございました。できます :) – Ionica

0

文化を変えることができるかどうかはわかりません。そうすることができれば、最初に文化を持つという目的を破ることができます。その文化によって使用される一般的に受け入れられた形式で日付と時間を表示する必要があります。

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

使用可能なすべてのプリセットフォーマット、および独自のフォーマットの表示方法の詳細については、http://msdn.microsoft.com/en-us/library/az4se3k1.aspxを参照してください。

1

あなただけの1個または2個の値を変更し、同じ残りを維持したい場合は、現在のカルチャの書き込み可能なコピーを取得するためにクローンを使用することができ、例えば:

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; 

これは良さそうですあなたの出発文化を得るために文化ストリングを使用する必要があります。

関連する問題