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.

Antworten:



88

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

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

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


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


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

14

Es ist

DateTime.Now.ToString("MMMM");

Mit 4 Ms.


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.


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.
*/
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.