มีวิธีที่ดีที่สุดในการเปลี่ยนจำนวนเต็มเป็นชื่อเดือนใน. net หรือไม่?
เห็นได้ชัดว่าฉันสามารถหมุนวันที่และเวลาเพื่อสตริงและแยกวิเคราะห์ชื่อเดือนจากตรงนั้นได้ ดูเหมือนจะเสียเวลาไปเปล่า ๆ
มีวิธีที่ดีที่สุดในการเปลี่ยนจำนวนเต็มเป็นชื่อเดือนใน. net หรือไม่?
เห็นได้ชัดว่าฉันสามารถหมุนวันที่และเวลาเพื่อสตริงและแยกวิเคราะห์ชื่อเดือนจากตรงนั้นได้ ดูเหมือนจะเสียเวลาไปเปล่า ๆ
คำตอบ:
ลอง GetMonthName จาก DateTimeFormatInfo
http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.getmonthname.aspx
คุณสามารถทำได้โดย:
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1);
ทำไมไม่ใช้somedatetime.ToString("MMMM")
?
อัปเดตด้วยเนมสเปซและวัตถุที่ถูกต้อง:
//This was wrong
//CultureInfo.DateTimeFormat.MonthNames[index];
//Correct but keep in mind CurrentInfo could be null
DateTimeFormatInfo.CurrentInfo.MonthNames[index];
คุณสามารถใช้วิธีการแบบคงที่จากMicrosoft.VisualBasic
เนมสเปซ:
string monthName = Microsoft.VisualBasic.DateAndTime.MonthName(monthInt, false);
DateTime dt = new DateTime(year, month, day);
Response.Write(day + "-" + dt.ToString("MMMM") + "-" + year);
ด้วยวิธีนี้เดือนของคุณจะแสดงด้วยชื่อของพวกเขาไม่ใช่จำนวนเต็ม
หากต้องการรับค่าเดือนแบบย่อคุณสามารถใช้ Enum.Parse();
Enum.Parse(typeof(Month), "0");
ซึ่งจะทำให้เกิดผล "ม.ค. "
จำไว้ว่านี่คือดัชนีที่อิงศูนย์