Cara terbaik untuk mengubah integer menjadi nama bulan di c #?

123

Apakah ada cara terbaik untuk mengubah integer menjadi nama bulannya di .net?

Jelas saya bisa memutar waktu untuk merangkai dan mengurai nama bulan dari sana. Itu hanya membuang-buang waktu saja.

DevelopingChris
sumber

Jawaban:

20

Mengapa tidak digunakan saja somedatetime.ToString("MMMM")?

leppie
sumber
1
Jadi kapan saja saya perlu mengubah 1 menjadi Januari, saya perlu memperbarui waktu tanggal dengan tahun dan hari yang sewenang-wenang, untuk mendapatkan Januari?
DevelopingChris
1
Benar, sebagai bonus, Anda dapat memilikinya dalam bahasa apa pun yang dapat dilokalkan yang Anda inginkan :)
leppie
20

Diperbarui dengan namespace dan objek yang benar:

//This was wrong
//CultureInfo.DateTimeFormat.MonthNames[index];

//Correct but keep in mind CurrentInfo could be null
DateTimeFormatInfo.CurrentInfo.MonthNames[index];
Ovidiu Pacurar
sumber
1
Ini tidak berhasil. Nick Berardi memberikan jawaban yang benar.
gagak
1
mulai sekarang saya akan mencoba untuk mengumpulkan jawaban saya terlebih dahulu
Ovidiu Pacurar
Menyadari ini adalah pertanyaan lama, saya masih ingin menunjukkan bahwa jawaban yang diterima yang diberikan oleh Nick Berandi lebih benar (setidaknya untuk implementasi Microsoft - tidak yakin tentang Mono), karena properti MonthNames selalu mengkloning larik nama bulan, membuat semuanya menjadi kurang efisien.
AASoft
7

Anda dapat menggunakan metode statis dari Microsoft.VisualBasicnamespace:

string monthName = Microsoft.VisualBasic.DateAndTime.MonthName(monthInt, false);
Tokabi
sumber
6
DateTime dt = new DateTime(year, month, day);
Response.Write(day + "-" + dt.ToString("MMMM") + "-" + year);

Dengan cara ini, bulan Anda akan ditampilkan menurut namanya, bukan bilangan bulat.

pengguna1534576
sumber
2

Untuk mendapatkan nilai bulan yang disingkat, Anda dapat menggunakan Enum.Parse();

Enum.Parse(typeof(Month), "0");

Ini akan menghasilkan "Jan" sebagai hasilnya.

Ingat ini adalah indeks berbasis nol.

sth
sumber