Ay numarasından Ay adını al


254

Olası Çoğaltma:
MonthName c # almak nasıl?

Hayır ay ay adını almak için aşağıdaki c # sözdizimi kullanılır ama ben Augustsadece istiyorum olsun Aug..

System.Globalization.DateTimeFormatInfo mfi = new 
System.Globalization.DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString();

Herhangi bir öneri...


3
Kenara .GetMonthName (int) aradığınız dize dönen değil itibaren, bu mu .ToString () gereksiz yani, bir dize döndürür
DaveD

1
Sadece bir .Substring (0,3) eklemek daha kolay olmaz mıydı?
Federico Navarrete

Yanıtlar:


349

Kısa ay adları için şunları kullanın:

string monthName = new DateTime(2010, 8, 1)
    .ToString("MMM", CultureInfo.InvariantCulture);

İspanyol ("es") kültürünün uzun / tam ay isimleri için

string fullMonthName = new DateTime(2015, i, 1).ToString("MMMM", CultureInfo.CreateSpecificCulture("es"));

"Ağustos" istiyorsanız yukarıdaki kodu nasıl kullanırım? tam ay ismi?
Albert Laure

25
@ User6675636b20796f7521string monthName = new DateTime(2010, 8, 1) .ToString("MMMM", CultureInfo.InvariantCulture);
Robert Fricke

Bu: "string s = yeni DateTime (1958, ay, 1) .ToString (" MMMM ", CultureInfo.InvariantCulture ());" bana "İnkâr edilemeyen üye 'System.Globalization.CultureInfo.InvariantCulture' bir yöntem gibi kullanılamaz."
B. Clay Shannon

Clay Shannon add () around (yeni DateTime (1958, ay, 1))
nükleer tatlı

2
Bu yanıt, OP sorusundaki gibi bir DateTime yerine bir ay numarasından çalışmak için en iyi IMHO değildir. Lasse V. Karlsen cevaplayıcısı kısa ay adı için daha basittir. Ve yerel kültürünüzde ay adını almak için CharithJ cevaplayıcı gibi CultureInfo.CurrentCulture kullanın.
8'de 35

290

Kısaltılmış Ay Adları için: "Ağustos"

DateTimeFormatInfo.GetAbbreviatedMonthName Yöntemi (Int32)

Geçerli DateTimeFormatInfo nesnesiyle ilişkili kültüre dayalı olarak, belirtilen ayın kültüre özgü kısaltılmış adını döndürür.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(8)

Tam Aylık İsimler İçin: "Ağustos"

DateTimeFormatInfo.GetMonthName Yöntemi (Int32)

Geçerli DateTimeFormatInfo nesnesiyle ilişkili kültüre dayalı olarak, belirtilen ayın kültüre özgü tam adını döndürür.

string monthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(8);

2
GetMonthName tam ay adını döndürür. Eğer JAN, FEB vb. İhtiyacınız varsa var month = 10 kullanabilirsiniz; string monthName = new DateTime (2014, ay, 1) .ToString ("MMM", CultureInfo.InvariantCulture) .ToUpper ();
Dmitry Pavlov

3
@DmitryPavlov GetAbbreviatedMonthName()bunu yapmanın daha iyi bir yoludur.
NickG

2
DateTimeFormatInfo DateTimeFormat olmalıdır (en azından .net 4.6'da)
TravisWhidden

İkinci seçenek benim için çalıştı, ancak emin olmak istedim GetCultureInfo("en-GB"), CurrentCultureçünkü ay adım her zaman İngilizce olacak
Maurice Klimek

Bu en iyi cevap olmalı. Günümü kurtardım. Teşekkürler.
Mahmud Eidarous



11

Bunu aşağıdaki şekilde alabilirsiniz,

DateTimeFormatInfo mfi = new DateTimeFormatInfo();
string strMonthName = mfi.GetMonthName(8).ToString(); //August

Şimdi ilk üç karakteri al

string shortMonthName = strMonthName.Substring(0, 3); //Aug

9
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)

Bu yöntem geri dönüyor April

Özel bir dile ihtiyacınız varsa şunları ekleyebilirsiniz:

<system.web>
    <globalization culture="es-ES" uiCulture="es-ES"></globalization>
     <compilation debug="true"
</system.web>

Veya tercih ettiğiniz dil.

Örneğin, es-ESkültürle:

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(4)

İadeler: Abril

İade: Abril(İspanyolca, çünkü biz yapılandırılmış culture as es-ESbizim de webconfigdosyaya, başka, alacağınızApril )

Bu işe yaramalı.


5

Bu , ay endeksinden (1-12) ay metnini (Ocak - Aralık) döndürmelidir

int monthNumber = 1; //1-12  
string monthName = new DateTimeFormatInfo().GetMonthName(monthNumber);

1
Lütfen ek bilgi sağlayın. Sadece kod göndermek değil
ochs.tobi

1
var month = 5;
var cultureSwe = "sv-SE";
var monthSwe = CultureInfo.CreateSpecificCulture(cultureSwe).DateTimeFormat.GetAbbreviatedMonthName(month);
Console.WriteLine(monthSwe);

var cultureEn = "en-US";
var monthEn = CultureInfo.CreateSpecificCulture(cultureEn).DateTimeFormat.GetAbbreviatedMonthName(month);
Console.WriteLine(monthEn);

Çıktı

maj
may
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.