So erhalten Sie den vollständigen Monatsnamen von DateTime

181

Was ist der richtige Weg, um den vollständigen Namen des Monats eines DateTimeObjekts zu erhalten?
zB January, December.

Ich benutze derzeit:

DateTime.Now.ToString("MMMMMMMMMMMMM");

Ich weiß, dass es nicht der richtige Weg ist, es zu tun.

shA.t.
quelle

Antworten:

272

Verwenden Sie den benutzerdefinierten Formatbezeichner "MMMM" :

DateTime.Now.ToString("MMMM");
mservidio
quelle
3
Wenn es nur der Monat ist, an dem Sie interessiert sind, ist DateTime.Today anstelle von DateTime.Now eine weitere Vereinfachung. Kein nutzloser Zeitanteil und etwas schneller.
OrizG
5
Überraschenderweise bekomme ich genau den Text "MMMM"
Chagbert
88

Sie können tun, was mservidio vorgeschlagen hat , oder noch besser, Ihre Kultur mit dieser Überlastung verfolgen:

DateTime.Now.ToString("MMMM", CultureInfo.InvariantCulture);
emp
quelle
3
Das ist ordentlich, ich muss mich mit diesem Kulturmaterial befassen.
Alex Turpin
2
Wenn es nur der Monat ist, an dem Sie interessiert sind, ist DateTime.Today anstelle von DateTime.Now eine weitere Vereinfachung. Kein nutzloser Zeitanteil und etwas schneller.
OrizG
39

Wenn Sie den aktuellen Monat möchten, können DateTime.Now.ToString("MMMM")Sie den gesamten Monat oder DateTime.Now.ToString("MMM")einen abgekürzten Monat abrufen.

Wenn Sie ein anderes Datum haben, für das Sie die Monatszeichenfolge abrufen möchten, können Sie nach dem Laden in ein DateTime-Objekt dieselben Funktionen für dieses Objekt verwenden:
dt.ToString("MMMM")um den vollständigen Monat abzurufen oder dt.ToString("MMM")um einen abgekürzten Monat abzurufen .

Referenz: Benutzerdefinierte Zeichenfolgen für Datums- und Uhrzeitformat

Wenn Sie kulturspezifische Monatsnamen benötigen, können Sie diese auch ausprobieren: DateTimeFormatInfo.GetAbbreviatedMonthName-Methode
DateTimeFormatInfo.GetMonthName-Methode

Jeffrey Blake
quelle
1
+1 für die Erwähnung, wie man es von einem macht DateTime, das NICHT ist DateTime.Now. Ich hatte gedacht, es war, string mon = myDate.Month.ToString("MMM")als ich traurig enttäuscht wurde, als ich "MMM" in meine String-Variable spuckte. Ich bin froh, dass Sie sich die Mühe gemacht haben, zu zeigen, wie Sie .ToString("MMM")das Datum selbst verwenden können, um den Monat zu ermitteln, in dem dies nicht der Fall ist DateTime.Now. Und wie Sie den Unterschied zwischen MMMund erklärt haben MMMM. Beste Antwort auf dieser Seite. Ein großes Lob.
Vapcguy
1
Wenn es nur der Monat ist, an dem Sie interessiert sind, ist DateTime.Today anstelle von DateTime.Now eine weitere Vereinfachung. Kein nutzloser Zeitanteil und etwas schneller.
OrizG
20

Wenn Sie "MMMM" als Antwort erhalten, erhalten Sie wahrscheinlich den Monat und konvertieren ihn dann in eine Zeichenfolge mit definiertem Format.

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

gibt "MMMM" aus

DateTime.Now.ToString("MMMM") 

gibt den Monatsnamen aus

Sabarish Ramachandran
quelle
16

Sie können Kultur verwenden, um den Monatsnamen für Ihr Land zu erhalten, z. B.:

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

Es ist

DateTime.Now.ToString("MMMM");

Mit 4 Ms.

Alex Turpin
quelle
1
Wenn es nur der Monat ist, an dem Sie interessiert sind, ist DateTime.Today anstelle von DateTime.Now eine weitere Vereinfachung. Kein nutzloser Zeitanteil und etwas schneller.
OrizG
11

Es sollte gerecht sein DateTime.ToString( "MMMM" )

Sie brauchen nicht alle zusätzlichen Ms.

Stefan H.
quelle
8
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.
*/
Madolite
quelle