programing

날짜 시간.지금. 데이 오브 위크.CultureInfo를 사용하여 ToString()

oldcodes 2023. 6. 18. 16:17
반응형

날짜 시간.지금. 데이 오브 위크.CultureInfo를 사용하여 ToString()

코드가 있습니다.

DateTime.Now.DayOfWeek.ToString()

그러면 영어 요일 이름이 나와요, 독일어 버전을 갖고 싶은데, 독일어 요일 이름을 얻으려면 여기에 CultureInfo를 어떻게 추가해야 하나요?

var culture = new System.Globalization.CultureInfo("de-DE");
var day = culture.DateTimeFormat.GetDayName(DateTime.Today.DayOfWeek);

사용할 수 있습니다.DateTimeFormat.DayNames독일인의 재산CultureInfo예:

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그것의 방법은 문화에 민감하지 않습니다.

다음을 사용하려면 Enum 값을 독일어로 해당 문자열로 변환하는 함수를 작성해야 합니다.DayOfWeek:

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);
DateTime date = DateTime.Today;

string day = date.ToString("dddd", new CultureInfo("es-MX"));

Console.WriteLine(day); //Jueves

원하는 영역에 대해서만 "es-MX"를 변경합니다.

이 코드를 사용하여 일 이름을 같은 언어로 반환할 수 있습니다.

CultureInfo myCI = new CultureInfo("ar-EG");   
MessageBox.Show(myCI.DateTimeFormat.GetDayName(DayOfWeek.Friday));

enter image description here 참고:DateTime를 반환합니다.DayOfWeek열거형이므로 코드를 사용하여 다른 열거형에서 반환합니다.

언급URL : https://stackoverflow.com/questions/5716762/datetime-now-dayofweek-tostring-with-cultureinfo

반응형