Formatieren einer Datums- / Uhrzeitzeichenfolge im Format JJJJMMTT

Ich arbeite mit einigen seltsamen APIs, bei denen die Daten im Format JJJJMMTT gesendet werden müssen.

Ich habe mir überlegt, so etwas zu tun:

string date = string.Concat(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); 

Gibt es eine bessere Vorgehensweise?

Kommentare

  • Seien Sie vorsichtig, wenn Sie DateTime.Now mehrmals so aufrufen. Zum Beispiel, wenn DateTime.Now.Month nur aufgerufen wird Vor Mitternacht des 31. Januar und DateTime.Now.Day nach Mitternacht erhalten Sie das Datum wie 20120101. Es ' ist unwahrscheinlich, aber sicherlich möglich.
  • Dies ist bereits ' beantwortet ', aber die Der Hauptunterschied zwischen ihrer und Ihrer Methode besteht darin, wie einstellige Monate und Daten behandelt werden. Ihre würden 201911 für den 1. Januar 2019 drucken, während die anderen 20190101

Antwort

Ja, es gibt: Datumsformatierung

var dateString = DateTime.Now.ToString("yyyyMMdd"); 

Antwort

Eine andere Option wäre das Erstellen von Erweiterungsmethoden wie:

public static class DateTimeExtensions { public static string ToYMD(this DateTime theDate) { return theDate.ToString("yyyyMMdd"); } public static string ToYMD(this DateTime? theDate) { return theDate.HasValue ? theDate.Value.ToYMD() : string.Empty; } } 

Sie würden es wie folgt verwenden:

var dateString = DateTime.Now.ToYMD(); 

Die implementierte Erweiterung funktioniert auch für nullable DateTime-Werte.

Wenn Sie viel mit diesen „yyyyMMdd“ -formatierten DateTime-Werten arbeiten, hat die Erweiterungsmethode den Vorteil, dass weniger eingegeben werden muss.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.