Chuyển đổi số nguyên tháng thành tên tháng


81

Tôi chỉ đơn giản là cố gắng sử dụng DateTimecấu trúc để chuyển đổi một số nguyên từ 1 đến 12 thành tên tháng được rút gọn.

Đây là những gì tôi đã thử:

DateTime getMonth = DateTime.ParseExact(Month.ToString(), 
                       "M", CultureInfo.CurrentCulture);
return getMonth.ToString("MMM");

Tuy nhiên, tôi nhận được một FormatExceptiontrên dòng đầu tiên vì chuỗi không phải là một hợp lệ DateTime. Bất cứ ai có thể cho tôi biết làm thế nào để làm điều này?

Câu trả lời:


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

Xem tại đây để biết thêm chi tiết.

Hoặc là

DateTime dt = DateTime.Now;
Console.WriteLine( dt.ToString( "MMMM" ) );

Hoặc nếu bạn muốn lấy tên viết tắt dành riêng cho văn hóa .

GetAbbreviatedMonthName(1);

Tài liệu tham khảo


8
GetAbbreviatedMonthName()có vẻ thích hợp.
Bala R

Ngược lại với điều này là gì? nhập tên tháng và lấy lại số?
Alok Rajasukumaran 27/10/16

1
int month = DateTime.ParseExact(MonthNameValue, "MMMM", CultureInfo.CurrentCulture ).Month
CharithJ

đó không phải là tên thành tháng, đó là tên ngày giờ thành tháng
sairfan

28
var monthIndex = 1;
return month = DateTimeFormatInfo.CurrentInfo.GetAbbreviatedMonthName(monthIndex);

Bạn cũng có thể thử cái này


4
Chỉ để thêm điều gì đó vào câu trả lời hay này, DateTimeFormatInfo nằm bên trong System.Globalization, sau đó cần thiết để nhập không gian tên này.
BernieSF

11

Bạn có thể làm điều gì đó như thế này thay thế.

return new DateTime(2010, Month, 1).ToString("MMM");

0
CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(
    Convert.ToInt32(e.Row.Cells[7].Text.Substring(3,2))).Substring(0,3) 
    + "-" 
    + Convert.ToDateTime(e.Row.Cells[7].Text).ToString("yyyy");

Đâu là ethậm chí đến từ ?!
Stuart.Sklinar
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.