Я бы предложил клонировать культуру и заново определить в ней названия нового месяца:
var swedish = CultureInfo.GetCultureInfo("sv-SE");
swedish = (CultureInfo)swedish.Clone();
swedish.DateTimeFormat.MonthNames =
swedish.DateTimeFormat.MonthNames
.Select(m => swedish.TextInfo.ToTitleCase(m))
.ToArray();
swedish.DateTimeFormat.MonthGenitiveNames =
swedish.DateTimeFormat.MonthGenitiveNames
.Select(m => swedish.TextInfo.ToTitleCase(m))
.ToArray();
и затем используйте его в string.Format
методе:
// date holds "Mars"
var date = String.Format(swedish, "{0:MMMM}", DateTime.Now);
Чтобы сделать месяцы прописными, я использую метод TextInfo.ToTitleCase
.