Làm thế nào để lấy tên tháng trong C #?


Câu trả lời:


167

Bạn có thể sử dụng CultureInfo để lấy tên tháng. Bạn thậm chí có thể nhận được tên tháng ngắn hạn cũng như những điều thú vị khác.

Tôi khuyên bạn nên đặt chúng vào các phương thức mở rộng, điều này sẽ cho phép bạn viết ít mã hơn sau này. Tuy nhiên, bạn có thể thực hiện theo cách bạn muốn.

Dưới đây là một ví dụ về cách thực hiện điều đó bằng các phương pháp mở rộng:

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);
    }
}

Hi vọng điêu nay co ich!


5
Tôi có thể nói thêm rằng có một InvariantInfotài sản cũng có thể được sử dụng. Và, theo ý kiến ​​của tôi, sau đây là một định dạng đơn giản / dễ đọc hơn để thực hiện việc này: DateTimeFormatInfo.InvariantInfo.GetAbbreviatedMonthName(...)hoặcDateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(...)
bsara

119

Sử dụng công cụ định dạng "MMMM":

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

17
giả sử bạn có một buổi hẹn hò. nếu không muốn nói:var month = new DateTime(1,i,1).ToString("MMMM");
Myster

14
string CurrentMonth = String.Format("{0:MMMM}", DateTime.Now)

Bạn không cần ToString ().
Richard Anthony Hein

5
Hoặc String.Format, thực sự. Just DateTime.Now.ToString ("MMMM") đơn giản hơn.
Jon Skeet

1
Tôi cũng đã gợi ý điều đó, nhưng bạn đã có câu trả lời đó như một câu trả lời khác. Phương pháp của Gortok cũng thể hiện việc sử dụng trình giữ chỗ để thực hiện định dạng, vì vậy tôi nghĩ đó là một ví dụ thay thế tốt.
Richard Anthony Hein

7

Nếu bạn chỉ muốn sử dụng MonthName thì hãy tham khảo Microsoft.VisualBasic và nó nằm trong Microsoft.VisualBasic.DateAndTime

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

7

Giả sử ngày của bạn là hôm nay. Hy vọng điều này sẽ giúp bạn.

DateTime dt = DateTime.Today;

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

Console.WriteLine(thisMonth);

-15
    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
Điều này không trả lời câu hỏi của OP, bởi vì họ nói: "Tôi thực sự không muốn viết một tuyên bố chuyển đổi lớn [...]" (nhấn mạnh của tôi). Vui lòng đọc câu hỏi chi tiết trước khi viết câu trả lời.
bấm còi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.