如何在C#中获取月份名称?


Answers:


167

您可以使用CultureInfo获取月份名称。您甚至可以获得简短的月份名称以及其他有趣的东西。

我建议您将它们放入扩展方法中,这将使您以后编写更少的代码。但是,您可以根据自己的喜好实现。

这是一个使用扩展方法的示例:

using System;
using System.Globalization;

class Program
{
    static void Main()
    {

        Console.WriteLine(DateTime.Now.ToMonthName());
        Console.WriteLine(DateTime.Now.ToShortMonthName());
        Console.Read();
    }
}

static class DateTimeExtensions
{
    public static string ToMonthName(this DateTime dateTime)
    {
        return CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(dateTime.Month);
    }

    public static string ToShortMonthName(this DateTime dateTime)
    {
        return CultureInfo.CurrentCulture.DateTimeFormat.GetAbbreviatedMonthName(dateTime.Month);
    }
}

希望这可以帮助!


5
我可能会补充说,还有一个InvariantInfo可以使用的属性。而且,在我看来,以下是执行此操作的更简单/可读的格式:DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...)DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)
bsara

119

使用“ MMMM”格式说明符:

string month = dateTime.ToString("MMMM");

17
假设你有个约会。如果没有:var month = new DateTime(1,i,1).ToString("MMMM");
Myster


7

如果您只想使用MonthName,请引用Microsoft.VisualBasic,它位于Microsoft.VisualBasic.DateAndTime中

//eg. Get January
String monthName = Microsoft.VisualBasic.DateAndTime.MonthName(1);

7

假设您的约会是今天。希望对您有帮助。

DateTime dt = DateTime.Today;

string thisMonth= dt.ToString("MMMM");

Console.WriteLine(thisMonth);

-13
    private string MonthName(int m)
    {
        string res;
        switch (m)
        {
            case 1:
                res="Ene";
                break;
            case 2:
                res = "Feb";
                break;
            case 3:
                res = "Mar";
                break;
            case 4:
                res = "Abr";
                break;
            case 5:
                res = "May";
                break;
            case 6:
                res = "Jun";
                break;
            case 7:
                res = "Jul";
                break;
            case 8:
                res = "Ago";
                break;
            case 9:
                res = "Sep";
                break;
            case 10:
                res = "Oct";
                break;
            case 11:
                res = "Nov";
                break;
            case 12:
                res = "Dic";
                break;
            default:
                res = "Nulo";
                break;
        }
        return res;
    }

10
这不回答OP的问题,因为他们说:“我真的希望写一个巨大的开关语句[...]”(重点煤矿)。在写答案之前,请详细阅读问题。
鸣喇叭
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.