Найкращий спосіб перетворити ціле число на ім'я місяця в 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
Це не працює. Нік Берарді дав правильну відповідь.
ворон

1
відтепер я спробую
сформулювати

Зрозумівши це давнє питання, я все ж хочу зазначити, що прийнята відповідь, надана Ніком Беранді, є більш правильною (принаймні, для впровадження 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");

Це призведе до отримання "січня".

Пам'ятайте, що це нульовий індекс.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.