Lucrez cu câteva API-uri ciudate care necesită trimiterea datelor în format YYYYMMDD.
Mă gândeam să fac așa ceva:
string date = string.Concat(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
Există o practică mai bună?
Comentarii
Răspuns
Da, există: Formatarea datei
var dateString = DateTime.Now.ToString("yyyyMMdd");
Răspuns
O altă opțiune ar fi crearea unei metode de extensie precum:
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; } }
O veți folosi ca:
var dateString = DateTime.Now.ToYMD();
Extensia implementată funcționează și pentru valori Nullable DateTime.
Dacă faceți o mulțime de muncă cu aceste valori DateTime formatate „aaaaMMdd”, metoda extensiei are avantajul unei mai puține tastări.
DateTime.Nowde mai multe ori astfel. De exemplu, dacăDateTime.Now.Montheste numit doar înainte de miezul nopții din 31 ianuarie șiDateTime.Now.Daydupă miezul nopții, veți primi data ca20120101. Este ' este puțin probabil, dar sigur posibil.