2010-07-18 4 views

ответ

18
// using the current culture - returns "July" for me 
string x = DateTimeFormatInfo.CurrentInfo.GetMonthName(7); 

// using a specific culture - returns "juillet" 
string y = CultureInfo.GetCultureInfo("fr-FR").DateTimeFormat.GetMonthName(7); 
+0

Да, это сработало – ONYX

+0

Это лучший подход. Но следите за культурами, которые используют другой календарь ... – Richard

+0

Очень хорошо .. спасибо! – Tiago

3

Используя строку пользовательского формата: метод

string name = new DateTime(2010,7,1).ToString("MMMM"); 
1
private static string GetMonthName(int month, bool abbrev) 

    { 

     DateTime date = new DateTime(1900, month, 1); 

     if (abbrev) return date.ToString("MMM"); 

     return date.ToString("MMMM"); 

    } 
+1

'return new DateTime (1900, month, 1) .ToString (аббревиатура?« MMM »:« MMMM »);' будет делать все это с меньшим количеством кода. –

2

Использование ToString объекта DateTime (в). «MMMM» - это длинный месяц. «МММ» - это короткий месячный код, например, август. Хорошая вещь - так, вы можете справиться с проблемами i18n, если вам нужно.

var monthID = 7; 
var monthName = new DateTime(2000, monthID, 1).ToString("MMMM"); 
Console.WriteLine(monthName); 
+0

Хью ... не было ни одного ответа, когда я начал печатать мои ... ну, по крайней мере, мы все согласны. – mattmc3

-3

Dude !!

имеет массив строк, содержащий имена 12 месяцев, и имена [7].

+2

Нет, это даст вам «Август». – Guffa

+0

И кроме того, зачем изобретать колесо? 'DateTimeFormatInfo.CurrentInfo.MonthNames [7]' действительно дает мне «Август». – LukeH

Смежные вопросы