วิธีที่ดีที่สุดในการเปลี่ยนจำนวนเต็มเป็นชื่อเดือนใน c #?


123

มีวิธีที่ดีที่สุดในการเปลี่ยนจำนวนเต็มเป็นชื่อเดือนใน. net หรือไม่?

เห็นได้ชัดว่าฉันสามารถหมุนวันที่และเวลาเพื่อสตริงและแยกวิเคราะห์ชื่อเดือนจากตรงนั้นได้ ดูเหมือนจะเสียเวลาไปเปล่า ๆ

คำตอบ:



20

ทำไมไม่ใช้somedatetime.ToString("MMMM")?


1
ดังนั้นเมื่อใดก็ตามที่ฉันต้องเปลี่ยนวันที่ 1 ในเดือนมกราคมฉันจำเป็นต้องอัปเดตวันเวลาใหม่ด้วยปีและวันโดยพลการเพื่อที่จะได้รับเดือนมกราคม?
DevelopingChris

1
ถูกต้องเป็นโบนัสคุณสามารถมีได้ในภาษาท้องถิ่นที่คุณต้องการ :)
leppie

20

อัปเดตด้วยเนมสเปซและวัตถุที่ถูกต้อง:

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

//Correct but keep in mind CurrentInfo could be null
DateTimeFormatInfo.CurrentInfo.MonthNames[index];

1
วิธีนี้ใช้ไม่ได้ Nick Berardi ให้คำตอบที่ถูกต้อง
กา

1
จากนี้ฉันจะพยายามรวบรวมคำตอบของฉันก่อน
Ovidiu Pacurar

เมื่อตระหนักว่านี่เป็นคำถามเก่าฉันยังคงต้องการชี้ให้เห็นว่าคำตอบที่ยอมรับโดย Nick Berandi นั้นถูกต้องมากกว่า (อย่างน้อยสำหรับการใช้งานของ Microsoft - ไม่แน่ใจเกี่ยวกับ Mono) เนื่องจากคุณสมบัติ MonthNames จะโคลนอาร์เรย์ของชื่อเดือนเสมอทำให้ สิ่งทั้งหมดมีประสิทธิภาพน้อยลง
AASoft

7

คุณสามารถใช้วิธีการแบบคงที่จากMicrosoft.VisualBasicเนมสเปซ:

string monthName = Microsoft.VisualBasic.DateAndTime.MonthName(monthInt, false);

6
DateTime dt = new DateTime(year, month, day);
Response.Write(day + "-" + dt.ToString("MMMM") + "-" + year);

ด้วยวิธีนี้เดือนของคุณจะแสดงด้วยชื่อของพวกเขาไม่ใช่จำนวนเต็ม


2

หากต้องการรับค่าเดือนแบบย่อคุณสามารถใช้ Enum.Parse();

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

ซึ่งจะทำให้เกิดผล "ม.ค. "

จำไว้ว่านี่คือดัชนีที่อิงศูนย์

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