月と日を文字で表示したいのですが。使用することもできますDateTime.ToString("MMMM d");
が、一部の国では正しい形式はですd MMMMM
。
順序が常に正しいことを確認する方法はありますか?
いいえ、方法はありません。簡単に閲覧する
[Globalization.CultureInfo]::GetCultures([Globalization.CultureTypes]::AllCultures) |
select @{l='Culture';e={$_.Name}},@{l='Pattern';e={$_.DateTimeFormat.LongDatePattern}}
月の名前と日の周りに、一部に含める必要があり、一部に除外する必要があるものがある多くの文化を明らかにします。
順序が常に正しいことを確認する方法はありますか?
さて、私が考えることができる最も近いのは、正しい「長い日付形式」を取得することです(たとえばCultureInfo.CurrentCulture.DateTimeFormat.LongDatePattern
、不要な要素を削除します。
ただし、これは非常に脆弱なアプローチになるため、特に関心のあるすべてのカルチャで徹底的にテストすることをお勧めします。たとえば、長い日付パターンに「MMMM」が含まれていない文化について考える必要があります...またはen-US
、たとえば、長い日付パターンがdd
の代わりに使用する文化について考える必要がありますd
。そのような状況で何をしたいですか?
次に、属格と非属格の形式があります。重要な文化では、長い日付形式と後の「月日」形式の両方で同じ形式が使用されると思います...しかし、すべてがきれいになります正直言って、散らかっています。
を使用するToString()
オーバーロードをCultureInfo
使用して、適切なカルチャを使用できます。
例えば:
var american = new CultureInfo("en-us");
var dateString = new DateTime(2000,1,1).ToString("MMMM d", american);
「1月1日」を生成します。
この質問の詳細情報。