私は世界の多くの国で見られるかもしれないアプリに取り組んでいます。区切り文字として:以外のもので時、分、秒を表示する国は多くありませんが、いくつかあります。その地域の時刻が正しくフォーマットされていることを確認したいと思います。DateTimeはこれで素晴らしいですが、TimeSpanはそうではありません。これらのスニペットは、地域をマラヤーラム語(インド)に設定して.Net4を使用しているVisualStudio2010の直接のウィンドウからのものです。dateTime.Now呼び出しは、時計、Microsoft Outlook、およびその他の領域での時刻の表示方法も反映しています。
DateTime.Now.ToString()
"02-10-12 17.00.58"
http://msdn.microsoft.com/en-us/library/dd784379.aspxは次のように述べています。「formatProviderがnullの場合、現在のカルチャに関連付けられているDateTimeFormatInfoオブジェクトが使用されます。formatがカスタムフォーマット文字列の場合、formatProviderパラメータ無視されます。」それなら、CurrentCultureInfoを渡す必要さえないはずだというのは当然のことです。ここで必要な形式はhh.mm.ssですが、他のほとんどの言語では明らかにhh:mm:ssであり、他の可能性がある場合は、それらも自動的に反映する必要があります。は。
でも:
timeRemaining.ToString()
"00:02:09"
timeRemaining.ToString("c")
"00:02:09"
timeRemaining.ToString("c", CultureInfo.CurrentCulture)
"00:02:09"
timeRemaining.ToString("g")
"0:02:09"
timeRemaining.ToString("G")
"0:00:02:09.0000000"
timeRemaining.ToString("t")
"00:02:09"
timeRemaining.ToString("g", CultureInfo.CurrentCulture)
"0:02:09"
timeRemaining.ToString("g", CultureInfo.CurrentUICulture)
"0:02:09"
timeRemaining.ToString("G", CultureInfo.CurrentUICulture)
"0:00:02:09.0000000"
timeRemaining.ToString("G", CultureInfo.CurrentCulture)
"0:00:02:09.0000000"
timeRemaining.ToString("t", CultureInfo.CurrentCulture)
"00:02:09"
カルチャーを意識した方法でtimeSpanを出力するためのシンプルな1行を探しています。どんなアイデアでも大歓迎です。