私はコードを持っています:
DateTime.Now.DayOfWeek.ToString()
英語の曜日名を教えてくれます。ドイツ語版が欲しいのですが、ここでCultureInfoを追加してドイツ語の曜日名を取得する方法を教えてください。
var culture = new System.Globalization.CultureInfo("de-DE");
var day = culture.DateTimeFormat.GetDayName(DateTime.Today.DayOfWeek);
ドイツ語CultureInfo
のDateTimeFormat.DayNames
プロパティを使用できます。例えば:
CultureInfo german = new CultureInfo("de-DE");
string sunday = german.DateTimeFormat.DayNames[(int)DayOfWeek.Sunday];
これはVisual Basicのソリューションです
_Dim GermanCultureInfo As Globalization.CultureInfo = New Globalization.CultureInfo("de-DE")
Return GermanCultureInfo.DateTimeFormat.GetDayName(DayOfWeek.Sunday)
_
ソリューションの関数はDateTime.Now.ToString("dddd", new System.Globalization.CultureInfo("de-DE"))
方法により廃止されました
DayOfWeek
は列挙なので、そのToString
メソッドはカルチャに依存しません。
DayOfWeek
を使用する場合は、Enum値をドイツ語の対応する文字列に変換する関数を作成する必要があります。
string DayOfWeekGerman(DayOfWeek dow)
{
switch(dow)
{
case(DayOfWeek.Sunday)
return "German Sunday";
case(DayOfWeek.Monday)
return "German Monday";
...
}
}
より良い方法は、ToString
からDateTime
を直接使用することです。
CultureInfo german = new CultureInfo("de-DE");
string dayName = DateTime.Now.ToString("dddd", german);
私はこれが好きです:
public static class DateTimeExtension
{
public static string GetDayOfWeek(this DateTime uiDateTime, CultureInfo culture = null)
{
if (culture == null)
{
culture = Thread.CurrentThread.CurrentUICulture;
}
return culture.DateTimeFormat.GetDayName(uiDateTime.DayOfWeek);
}
}
そしてあなたの質問によると:
var culture = new System.Globalization.CultureInfo("de-DE");
var day = uiDateTime.GetDayOfWeek(culture);