2

我正在尝试为博客应用程序创建存档列表。我有一个具有以下代码片段的 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;
    }

非常感谢。

4

4 回答 4

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

或缩写

CultureInfo.CurrentUICulture.DateTimeFormat.AbbreviatedMonthNames[1];
于 2012-07-03T21:41:55.287 回答
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];
于 2012-07-03T21:49:33.703 回答
3

我相信你想要:

.ToString("MMM");

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

DateTime jan = new DateTime(2012, 1, 1);
return jan.Date.ToString("MMM");
于 2012-07-03T21:43:58.030 回答
0

如果您想将 ViewBags 用于数据库中的数据,您也可以轻松地使用该格式。请记住。

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

}
于 2017-09-26T01:26:09.050 回答