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.

Jawaban:



20

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


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];

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);

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.


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.

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.