Is there a best way to turn an integer into its month name in .net?
Obviously I can spin up a datetime to string it and parse the month name out of there. That just seems like a gigantic waste of time.
Is there a best way to turn an integer into its month name in .net?
Obviously I can spin up a datetime to string it and parse the month name out of there. That just seems like a gigantic waste of time.
Try GetMonthName from DateTimeFormatInfo
http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.getmonthname.aspx
You can do it by:
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1);
Why not just use somedatetime.ToString("MMMM")
?
Updated with the correct namespace and object:
//This was wrong
//CultureInfo.DateTimeFormat.MonthNames[index];
//Correct but keep in mind CurrentInfo could be null
DateTimeFormatInfo.CurrentInfo.MonthNames[index];
DateTime dt = new DateTime(year, month, day);
Response.Write(day + "-" + dt.ToString("MMMM") + "-" + year);
In this way, your month will be displayed by their name, not by integer.
To get abbreviated month value, you can use Enum.Parse();
Enum.Parse(typeof(Month), "0");
This will produce "Jan" as result.
Remember this is zero-based index.