วิธีรับชื่อเดือนที่สมบูรณ์จาก DateTime


183

วิธีที่เหมาะสมในการรับชื่อที่สมบูรณ์ของDateTimeวัตถุเดือนคืออะไร?
เช่น,JanuaryDecember

ฉันกำลังใช้:

DateTime.Now.ToString("MMMMMMMMMMMMM");

ฉันรู้ว่ามันไม่ใช่วิธีที่ถูกต้องที่จะทำ

คำตอบ:


272

3
หากเป็นเพียงเดือนที่คุณสนใจ DateTime แล้ววันนี้แทนที่จะเป็น DateTime ตอนนี้จะทำให้เข้าใจง่ายขึ้น ไม่มีส่วนเวลาที่ไร้ประโยชน์และเร็วขึ้นเล็กน้อย
OrizG

5
น่าแปลกที่ฉันได้รับข้อความ "MMMM" มาก
Chagbert

88

คุณสามารถทำตามคำแนะนำ mservidioหรือดีกว่าติดตามวัฒนธรรมของคุณโดยใช้งานเกินพิกัดนี้:

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);

3
เรียบร้อยแล้วฉันต้องดูสิ่งต่างๆในวัฒนธรรมนี้
Alex Turpin

2
หากเป็นเพียงเดือนที่คุณสนใจ DateTime แล้ววันนี้แทนที่จะเป็น DateTime ตอนนี้จะทำให้เข้าใจง่ายขึ้น ไม่มีส่วนเวลาที่ไร้ประโยชน์และเร็วขึ้นเล็กน้อย
OrizG

39

หากคุณต้องการเดือนปัจจุบันคุณสามารถใช้ DateTime.Now.ToString("MMMM")เพื่อรับทั้งเดือนหรือDateTime.Now.ToString("MMM")เพื่อให้ได้เดือนย่อ

หากคุณมีวันที่อื่นที่คุณต้องการรับสายเดือนสำหรับหลังจากที่โหลดลงในวัตถุ DateTime คุณสามารถใช้ฟังก์ชั่นเดียวกันกับวัตถุนั้น:
dt.ToString("MMMM")เพื่อรับทั้งเดือนหรือdt.ToString("MMM")รับเดือนแบบย่อ

การอ้างอิง: สตริงรูปแบบวันที่และเวลาที่กำหนดเอง

อีกวิธีหนึ่งถ้าคุณต้องการชื่อเดือนวัฒนธรรมที่เฉพาะเจาะจงคุณสามารถลองเหล่านี้: DateTimeFormatInfo.GetAbbreviatedMonthName วิธี
DateTimeFormatInfo.GetMonthName วิธี


1
+1 สำหรับการกล่าวขวัญว่าจะทำจากที่ไม่DateTime DateTime.Nowฉันคิดว่ามันเป็นstring mon = myDate.Month.ToString("MMM")ตอนที่ฉันเศร้าใจโดยปล่อย "MMM" ลงในตัวแปรสตริงของฉัน ดีใจที่คุณเอาความพยายามที่จะแสดงวิธีการใช้ในวันที่ตัวเองจะได้รับเดือนเมื่อมันไม่ได้.ToString("MMM") DateTime.Nowและวิธีที่คุณอธิบายความแตกต่างระหว่างและMMM MMMMคำตอบที่ดีที่สุดในหน้านี้ ความรุ่งโรจน์
vapcguy

1
หากเป็นเพียงเดือนที่คุณสนใจ DateTime แล้ววันนี้แทนที่จะเป็น DateTime ตอนนี้จะทำให้เข้าใจง่ายขึ้น ไม่มีส่วนเวลาที่ไร้ประโยชน์และเร็วขึ้นเล็กน้อย
OrizG

21

หากคุณได้รับ "MMMM" เป็นคำตอบอาจเป็นไปได้ว่าคุณจะได้รับเดือนจากนั้นแปลงเป็นสตริงของรูปแบบที่กำหนด

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

จะส่งออก "MMMM"

DateTime.Now.ToString("MMMM") 

จะออกชื่อเดือน


16

คุณสามารถใช้วัฒนธรรมเพื่อรับชื่อเดือนสำหรับประเทศของคุณเช่น:

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

14

มัน

DateTime.Now.ToString("MMMM");

กับ 4 Mวิ


1
หากเป็นเพียงเดือนที่คุณสนใจ DateTime แล้ววันนี้แทนที่จะเป็น DateTime ตอนนี้จะทำให้เข้าใจง่ายขึ้น ไม่มีส่วนเวลาที่ไร้ประโยชน์และเร็วขึ้นเล็กน้อย
OrizG


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.
*/
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.