Cara mendapatkan nama bulan lengkap dari DateTime

183

Apa cara yang tepat untuk mendapatkan nama lengkap bulan dari suatu DateTimeobjek?
misalnya January, December.

Saat ini saya menggunakan:

DateTime.Now.ToString("MMMMMMMMMMMMM");

Saya tahu itu bukan cara yang benar untuk melakukannya.

shA.t
sumber

Jawaban:

272

Gunakan specifier format khusus "MMMM" :

DateTime.Now.ToString("MMMM");
mservidio
sumber
3
Jika hanya bulan yang Anda minati maka DateTime.Hari ini bukan DateTime. Sekarang adalah penyederhanaan lebih lanjut. Tidak ada porsi waktu yang tidak berguna dan sedikit lebih cepat.
OrizG
5
Anehnya saya mendapatkan teks "MMMM"
Chagbert
88

Anda dapat melakukan seperti yang disarankan mservidio , atau bahkan lebih baik, melacak budaya Anda menggunakan kelebihan ini:

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);
emp
sumber
3
Itu rapi, saya perlu melihat ke dalam hal budaya ini.
Alex Turpin
2
Jika hanya bulan yang Anda minati maka DateTime.Hari ini bukan DateTime. Sekarang adalah penyederhanaan lebih lanjut. Tidak ada porsi waktu yang tidak berguna dan sedikit lebih cepat.
OrizG
39

Jika Anda menginginkan bulan saat ini, Anda dapat menggunakan DateTime.Now.ToString("MMMM")untuk mendapatkan bulan penuh atau DateTime.Now.ToString("MMM")untuk mendapatkan bulan yang disingkat.

Jika Anda memiliki tanggal lain yang Anda ingin dapatkan string bulan, setelah itu dimuat ke objek DateTime, Anda dapat menggunakan fungsi yang sama dari objek itu:
dt.ToString("MMMM")untuk mendapatkan bulan penuh atau dt.ToString("MMM")untuk mendapatkan bulan yang disingkat.

Referensi: String Format Tanggal dan Waktu Kustom

Atau, jika Anda memerlukan nama bulan khusus budaya, maka Anda dapat mencoba ini: DateTimeFormatInfo.GetAbbreviatedMonthName Method
DateTimeFormatInfo.GetMonthName Method

Jeffrey Blake
sumber
1
+1 untuk menyebutkan cara melakukannya dari DateTimeyang TIDAK DateTime.Now. Saya pikir itu string mon = myDate.Month.ToString("MMM")ketika saya sedih dikecewakan oleh itu meludah "MMM" ke dalam variabel string saya. Senang Anda mengambil upaya untuk menunjukkan cara menggunakan .ToString("MMM")pada tanggal, itu sendiri, untuk mendapatkan bulan, padahal tidak DateTime.Now. Dan bagaimana Anda menjelaskan perbedaan antara MMMdan MMMM. Jawaban terbaik di halaman ini. Pujian.
vapcguy
1
Jika hanya bulan yang Anda minati maka DateTime.Hari ini bukan DateTime. Sekarang adalah penyederhanaan lebih lanjut. Tidak ada porsi waktu yang tidak berguna dan sedikit lebih cepat.
OrizG
21

Jika Anda menerima "MMMM" sebagai respons, mungkin Anda mendapatkan bulan dan kemudian mengonversinya menjadi serangkaian format yang ditentukan.

DateTime.Now.Month.ToString("MMMM") 

akan menampilkan "MMMM"

DateTime.Now.ToString("MMMM") 

akan menampilkan nama bulan

Sabarish Ramachandran
sumber
16

Anda dapat menggunakan Budaya untuk mendapatkan nama bulan untuk negara Anda seperti:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ar-EG");
string FormatDate = DateTime.Now.ToString("dddd., MMM dd yyyy, hh:MM tt", culture);
Yehia Elhawary
sumber
14

Nya

DateTime.Now.ToString("MMMM");

Dengan 4 Ms.

Alex Turpin
sumber
1
Jika hanya bulan yang Anda minati maka DateTime.Hari ini bukan DateTime. Sekarang adalah penyederhanaan lebih lanjut. Tidak ada porsi waktu yang tidak berguna dan sedikit lebih cepat.
OrizG
11

Seharusnya adil DateTime.ToString( "MMMM" )

Anda tidak perlu semua tambahan M.

Stefan H
sumber
9
DateTime birthDate = new DateTime(1981, 8, 9);
Console.WriteLine ("I was born on the {0}. of {1}, {2}.", birthDate.Day, birthDate.ToString("MMMM"), birthDate.Year);

/* The above code will say:
"I was born on the 9. of august, 1981."

"dd" converts to the day (01 thru 31).
"ddd" converts to 3-letter name of day (e.g. mon).
"dddd" converts to full name of day (e.g. monday).
"MMM" converts to 3-letter name of month (e.g. aug).
"MMMM" converts to full name of month (e.g. august).
"yyyy" converts to year.
*/
Madolit
sumber