Можно использовать DateTimeFormatInfo
для получения той информации:
// Will return January
string name = DateTimeFormatInfo.CurrentInfo.GetMonthName(1);
или получить все имена:
string[] names = DateTimeFormatInfo.CurrentInfo.MonthNames;
можно также инстанцировать нового DateTimeFormatInfo
на основе CultureInfo
с DateTimeFormatInfo.GetInstance
, или можно использовать текущую культуру CultureInfo.DateTimeFormat
свойство.
var dateFormatInfo = CultureInfo.GetCultureInfo("en-GB").DateTimeFormat;
Имеют в виду, что календари в.Net поддерживают до 13 месяцев, таким образом Вы получите дополнительную пустую строку в конце для календарей только с 12 месяцами (такими как найденные в en-США или франк, например).
Можно получить список локализованных месяцев от Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthNames
и инвариантных месяцев от DateTimeFormatInfo.InvariantInfo.MonthNames
.
string[] localizedMonths = Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthNames;
string[] invariantMonths = DateTimeFormatInfo.InvariantInfo.MonthNames;
for( int month = 0; month < 12; month++ )
{
ListItem monthListItem = new ListItem( localizedMonths[month], invariantMonths[month] );
monthsDropDown.Items.Add( monthListItem );
}
могла бы быть некоторая проблема с числом месяцев через год в зависимости от типа календаря, но я только что принял 12 месяцев в этом примере.
Попытайтесь перечислить имена месяца:
for( int i = 1; i <= 12; i++ ){
combo.Items.Add(CultureInfo.CurrentCulture.DateTimeFormat.MonthNames[i]);
}
Это находится в Системе. Пространство имен глобализации.
Hope, которая помогает!
Они определяются как массив в пространствах имен Глобализации.
using System.Globalization;
for (int i = 0; i < 12; i++) {
Console.WriteLine(CultureInfo.CurrentUICulture.DateTimeFormat.MonthNames[i]);
}
Можно использовать следующее для возврата массива строки, содержащей имена месяца
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthNames