Dapatkan nama Bulan dari nomor bulan


254

Kemungkinan Gandakan:
Bagaimana cara mendapatkan MonthName di c #?

Saya menggunakan sintaks c # berikut untuk mendapatkan nama bulan dari bulan tidak, tetapi saya mendapatkan Augustsaya hanya ingin Aug..

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

Ada saran...


3
Selain .GetMonthName (int) tidak mengembalikan string yang Anda cari, itu tidak kembali string, sehingga .ToString () tidak perlu
daved

1
Tidakkah lebih mudah hanya dengan menambahkan. Substring (0,3)?
Federico Navarrete

Jawaban:


349

Untuk nama bulan pendek gunakan:

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

Untuk nama panjang / bulan penuh untuk budaya Spanyol ("es")

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

bagaimana saya menggunakan kode di atas jika saya ingin "Agustus"? nama bulan penuh?
Albert Laure

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

Ini: "string s = DateTime baru (1958, bulan, 1) .ToString (" MMMM ", CultureInfo.InvariantCulture ());" memberi saya, "System.Globalisasi.CultureInfo.InvariantCulture anggota Non-invocable 'tidak dapat digunakan seperti metode."
B. Clay Shannon

B. Clay Shannon menambahkan () sekitar (DateTime baru (1958, bulan, 1))
nuklir manis

2
Jawaban ini bukan IMHO terbaik untuk bekerja dari angka bulan, bukan DateTime seperti dalam pertanyaan OP. Jawaban Lasse V. Karlsen lebih langsung untuk nama bulan pendek. Dan untuk mendapatkan nama bulan dalam budaya lokal Anda, gunakan CultureInfo.CurrentCulture seperti pada jawaban CharithJ.
SETELAH

290

Untuk Nama Bulan Singkatan: "Agustus"

DateTimeFormatInfo.GetAbbreviatedMonthName Method (Int32)

Mengembalikan nama singkatan khusus budaya untuk bulan yang ditentukan berdasarkan budaya yang terkait dengan objek DateTimeFormatInfo saat ini.

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

Untuk Nama Bulan Penuh: "Agustus"

Metode DateTimeFormatInfo.GetMonthName (Int32)

Mengembalikan nama lengkap khusus budaya dari bulan yang ditentukan berdasarkan budaya yang terkait dengan objek DateTimeFormatInfo saat ini.

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

2
GetMonthName mengembalikan nama bulan penuh. Jika Anda membutuhkannya sebagai JAN, FEB, dll. Anda bisa menggunakan var month = 10; string monthName = DateTime baru (2014, bulan, 1) .ToString ("MMM", CultureInfo.InvariantCulture) .ToUpper ();
Dmitry Pavlov

3
@DmitryPavlov GetAbbreviatedMonthName()adalah cara yang lebih baik untuk melakukan itu.
NickG

2
DateTimeFormatInfo harus DateTimeFormat (setidaknya dalam .net 4.6)
TravisWhidden

Opsi kedua bekerja untuk saya, meskipun saya menggunakan GetCultureInfo("en-GB")alih-alih CurrentCulturekarena saya ingin memastikan, bahwa nama bulan saya akan selalu dalam bahasa Inggris
Maurice Klimek

Ini harus menjadi jawaban terbaik. Menyelamatkan hariku. Terima kasih.
Mahmoud Eidarous



11

Anda bisa mendapatkan ini dengan cara berikut,

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

Sekarang, dapatkan tiga karakter pertama

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

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

Metode ini kembali April

Jika Anda memerlukan bahasa khusus, Anda dapat menambahkan:

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

Atau bahasa pilihan Anda.

Misalnya, dengan es-ESbudaya:

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

Pengembalian: Abril

Pengembalian: Abril(dalam bahasa Spanyol, karena, kami mengonfigurasi culture as es-ESdalam webconfigfile kami , jika tidak, Anda akan mendapatkan April)

Itu seharusnya bekerja.


5

Ini harus mengembalikan teks bulan (Januari - Desember) dari indeks bulan (1-12)

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

1
Harap berikan beberapa informasi tambahan. Jangan hanya memposting kode
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);

Keluaran

maj
may
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.