c#有没有一种简单的方法将月份整数转换为名称

Posted

技术标签:

【中文标题】c#有没有一种简单的方法将月份整数转换为名称【英文标题】:c# is there a easy way to convert month integer to name 【发布时间】:2012-07-03 21:40:19 【问题描述】:

我正在尝试为博客应用程序创建存档列表。我有一个 veiw 模型,它有这个代码 sn-p:

@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;
    

非常感谢。

【问题讨论】:

Is there a predefined enumeration for Month in the .NET library?的可能重复 不是重复的问题,但我认为答案会有所帮助。 【参考方案1】:
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(1);

或缩写

CultureInfo.CurrentUICulture.DateTimeFormat.AbbreviatedMonthNames[1];

【讨论】:

我认为这不会返回缩写名称,但很高兴知道。 取缩写名称使用3个符号 由于某种原因,CultureInfo 以前无法正常工作。我在***上研究过。无论如何它现在可以工作了!【参考方案2】:

获取完整的月份名称

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];

【讨论】:

我必须使用 [month-1] 作为第三个选项来给我正确的缩写月份。【参考方案3】:

我相信你想要:

.ToString("MMM");

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

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

【讨论】:

【参考方案4】:

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

@foreach (var item in ViewBag.HealthCare)

    @item.Created_Date.ToString("MMMM yyyy")


【讨论】:

以上是关于c#有没有一种简单的方法将月份整数转换为名称的主要内容,如果未能解决你的问题,请参考以下文章

有没有一种简单的方法可以将 C# 类转换为 PHP?

将 bigint 转换为日期(月份名称)

在不了解文化的情况下将月份名称从一种语言转换为另一种语言?

C# - 将浮点数转换为整数...并根据余数更改整数

将 Pandas 系列日期时间“月份”数字转换为月份文本 [重复]

有没有简单的方法将布尔值转换为整数?