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...

bala3569
sumber
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
Kemungkinan duplikat dari Cara mendapatkan nama bulan dalam C #?
Cœur

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"));
Darin Dimitrov
sumber
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);
CharithJ
sumber
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
85

Ganti GetMonthNamedengan GetAbbreviatedMonthNameyang berbunyi:

string strMonthName = mfi.GetAbbreviatedMonthName(8);
Lasse V. Karlsen
sumber
12

Kamu ingin GetAbbreviatedMonthName

AakashM
sumber
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
Thili77
sumber
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.

MrMins
sumber
5

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

int monthNumber = 1; //1-12  
string monthName = new DateTimeFormatInfo().GetMonthName(monthNumber);
Rishin C
sumber
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
Joel Wiklund
sumber