我正在尝试为博客应用程序创建存档列表。我有一个veiw模型,其中包含以下代码片段:
@model IEnumerable<NPLHBlog.Models.ArchiveListModels>
...
@foreach (var item in Model)
{
<li>@item.ArchiveMonth/@item.ArchiveYear : @item.PostCount</li>
}
...
我正在尝试打印item.ArchiveMonth为'Jan'而不是'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 :(得分:11)
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1);
或abrev
CultureInfo.CurrentUICulture.DateTimeFormat.AbbreviatedMonthNames[1];
答案 1 :(得分: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];
答案 2 :(得分:3)
我相信你想要:
.ToString("MMM");
您甚至可以为特定月份创建自己的DateTime对象:
DateTime jan = new DateTime(2012, 1, 1);
return jan.Date.ToString("MMM");
答案 3 :(得分:0)
如果要对数据库中的数据使用ViewBags,您也可以轻松使用该格式。请记住。
@foreach (var item in ViewBag.HealthCare)
{
@item.Created_Date.ToString("MMMM yyyy")
}