Jak uzyskać pełną nazwę miesiąca od DateTime


183

Jaki jest właściwy sposób uzyskania pełnej nazwy miesiąca DateTimeobiektu?
np January, December.

Obecnie używam:

DateTime.Now.ToString("MMMMMMMMMMMMM");

Wiem, że to niewłaściwy sposób.

Odpowiedzi:



88

Możesz zrobić to, co sugeruje mservidio , lub jeszcze lepiej, śledzić swoją kulturę, korzystając z tego przeciążenia:

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);

3
To miłe, muszę przyjrzeć się tym kulturom.
Alex Turpin,

2
Jeśli interesuje Cię tylko miesiąc, to DateTime.Today zamiast DateTime.Now to kolejne uproszczenie. Bez zbędnej porcji czasu i trochę szybciej.
OrizG,

39

Jeśli chcesz bieżącego miesiąca, możesz użyć go, DateTime.Now.ToString("MMMM")aby uzyskać pełny miesiąc lub DateTime.Now.ToString("MMM")skrócić miesiąc.

Jeśli masz inną datę, dla której chcesz uzyskać ciąg miesiąca, po załadowaniu go do obiektu DateTime, możesz użyć tych samych funkcji dla tego obiektu:
dt.ToString("MMMM")uzyskać pełny miesiąc lub dt.ToString("MMM")skrócić miesiąc.

Odniesienie: Niestandardowe ciągi formatu daty i godziny

Alternatywnie, jeśli potrzebujesz nazw miesięcy specyficznych dla kultury, możesz wypróbować następujące: Metoda
DateTimeFormatInfo.GetAbbreviatedMonthName Metoda DateTimeFormatInfo.GetMonthName


1
+1 za wzmiankę o tym, jak to zrobić z DateTimeNIE, który jest NIE DateTime.Now. Wydawało mi się, że to string mon = myDate.Month.ToString("MMM")niestety zawiodło mnie, gdy wyplułam „MMM” na moją zmienną łańcuchową. Cieszę się, że podjąłeś wysiłek, aby pokazać, jak korzystać .ToString("MMM")z tej daty, aby uzyskać miesiąc, kiedy nie jest DateTime.Now. I jak wyjaśniłeś różnicę między MMMi MMMM. Najlepsza odpowiedź na tej stronie. Sława.
vapcguy,

1
Jeśli interesuje Cię tylko miesiąc, to DateTime.Today zamiast DateTime.Now to kolejne uproszczenie. Bez zbędnej porcji czasu i trochę szybciej.
OrizG,

21

Jeśli otrzymasz odpowiedź „MMMM”, prawdopodobnie otrzymujesz miesiąc, a następnie konwertujesz go na ciąg zdefiniowanego formatu.

DateTime.Now.Month.ToString("MMMM") 

wyświetli „MMMM”

DateTime.Now.ToString("MMMM") 

wyświetli nazwę miesiąca


16

Możesz użyć Kultury, aby uzyskać nazwę miesiąca dla swojego kraju, na przykład:

System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("ar-EG");
string FormatDate = DateTime.Now.ToString("dddd., MMM dd yyyy, hh:MM tt", culture);

14

Jego

DateTime.Now.ToString("MMMM");

Z 4 Ms.


1
Jeśli interesuje Cię tylko miesiąc, to DateTime.Today zamiast DateTime.Now to kolejne uproszczenie. Bez zbędnej porcji czasu i trochę szybciej.
OrizG,

11

Tak powinno być DateTime.ToString( "MMMM" )

Nie potrzebujesz wszystkich dodatkowych M.


9
DateTime birthDate = new DateTime(1981, 8, 9);
Console.WriteLine ("I was born on the {0}. of {1}, {2}.", birthDate.Day, birthDate.ToString("MMMM"), birthDate.Year);

/* The above code will say:
"I was born on the 9. of august, 1981."

"dd" converts to the day (01 thru 31).
"ddd" converts to 3-letter name of day (e.g. mon).
"dddd" converts to full name of day (e.g. monday).
"MMM" converts to 3-letter name of month (e.g. aug).
"MMMM" converts to full name of month (e.g. august).
"yyyy" converts to year.
*/
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.