2012-07-03 31 views
2

我想创建一个博客应用程序的存档列表。我有有此代码段一教职员模型:c#有没有一个简单的方法来将月份整数转换为名称

@model IEnumerable<NPLHBlog.Models.ArchiveListModels> 
... 
     @foreach (var item in Model) 
     { 
      <li>@item.ArchiveMonth/@item.ArchiveYear : @item.PostCount</li> 
     } 
... 

我试图打印item.ArchiveMonth为“1”,而不是“扬”。

的ArchiveListModel如下:

public class ArchiveListModels 
{ 
    public int ArchiveYear { get; set; } 
    public int ArchiveMonth { get; set; } 
    public int PostCount { get; set; } 
} 

和博客从存储库中读取如下:

public IQueryable<ArchiveListModels> ArchiveList() 
    { 
     var archiveList = from blogs in db.Blogs 
          group blogs by new { blogs.PublishDate.Year, blogs.PublishDate.Month } 
           into dateGroup 
           select new ArchiveListModels() 
           { 
            ArchiveYear = dateGroup.Key.Year, 
            ArchiveMonth = dateGroup.Key.Month, 
            PostCount = dateGroup.Count() 
           }; 
     return archiveList; 
    } 

非常感谢。

+0

的可能重复[有没有在.NET库月份预定枚举?](http://stackoverflow.com/questions/899565/is-there-a-predefined-enumeration-for-month -in-the-net-library) – DaveShaw

+0

不是重复的问题,但我认为答案会有所帮助。 – DaveShaw

回答

4

要获取完整的月份名称

int month = 1; 
System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat.GetMonthName(month); 

或者你可以使用的时间字符串格式:

int month = 1; 
var dt = new DateTime(2012, month, 1): 
var monthAbbr = dt.ToString("MMM"); 

或者你可以做一个查找对缩写列表

int month = 1; 
var monthAbbr =  System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat.AbbreviatedMonthNames[month]; 
+0

另一个很好的知道! –

+0

我不得不使用[month-1]作为第三个选项来给我正确的缩写月份。 – Tripping

11
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1); 

或abrev

CultureInfo.CurrentUICulture.DateTimeFormat.AbbreviatedMonthNames[1]; 
+0

比我正在研究的更好的解决方案.... –

+0

我不认为这会返回缩写名称,但很高兴知道。 –

+0

取缩写名称使用3个符号 –

3

我相信你想:

.ToString("MMM"); 

你甚至可以创建自己的DateTime对象为特定的月份:

DateTime jan = new DateTime(2012, 1, 1); 
return jan.Date.ToString("MMM"); 
0

如果你想使用ViewBags从DATAS你的数据库你也可以很容易地使用这种格式。请记住。

@foreach (var item in ViewBag.HealthCare) 
{ 
    @item.Created_Date.ToString("MMMM yyyy") 

} 
相关问题