web-dev-qa-db-ja.com

短い曜日名を取得する

私は短い曜日名を含む文字列を返すメソッドをどのように書くか疑問に思っていました、例:

    public static string GetShortDayName(DayOfWeek day)

今私が呼ぶなら:

        string monday = GetShortDayName(DayOfWeek.Monday);

文化がenの場合は「mo」、例としては「lu」が返されます。

20
MaiOM

DateTimeFormatInfo.AbbreviatedDayNames 。例えば:

string[] names = culture.DateTimeFormat.AbbreviatedDayNames;
string monday = names[(int) DayOfWeek.Monday];
47
Jon Skeet

あなたが得ることができる最も近いものは カスタムの日付と時刻のフォーマット文字列 -具体的にはdddを使用することです。

これは略語を返します-結果を部分文字列化して2文字にすることができます。

DateTimeを使用して、希望する曜日に対応する日を指定する必要があります。

10
Oded
DateTimeFormatInfo.ShortestDayNames

現在のDateTimeFormatInfoオブジェクトに関連付けられた、最も短い一意の短縮された曜日名の文字列配列を取得または設定します。

4
dedpichto

「ddd」を カスタムフォーマット文字列 で使用して、短い曜日名を取得できます。例えば。

DateTime.Now.ToString("ddd");

コメントで@Loudenvierが示唆したように。

4
mcNux

試してください:

CultureInfo english = new CultureInfo("en-US");
string sunday = (english.DateTimeFormat.DayNames[(int)DayOfWeek.Sunday]).Substring(0, 2);

または:

dateTimeFormats = new CultureInfo("en-US").DateTimeFormat;
string sunday = (dateValue.ToString("dddd", dateTimeFormats)).Substring(0, 2);
1
CloudyMarble