Dátumidő karakterlánc formázása ÉÉÉÉHHNN formátumban

Olyan furcsa API-kkal dolgozom, amelyeknél a dátumokat ÉÉÉÉHHNN formátumban kell elküldeni.

Ilyesmire gondoltam:

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

Van-e jobb gyakorlat?

Megjegyzések

  • Vigyázzon, amikor többször is így hívja a DateTime.Now t. Például, ha a DateTime.Now.Month nevet csak január 31-én éjfél előtt és DateTime.Now.Day éjfél után megkapja a dátumot, például: 20120101. Ez ' nem valószínű, de mindenképpen lehetséges.
  • Ez már ' válaszolt ', de a A módszer és a módszer közötti fő különbség az, hogy az 1 jegyű hónapokat és dátumokat hogyan kezelik. A tiéd 201911-et nyomtat 2019. január 1-ig, míg a többiek 20190101-et nyomtatnak

Válasz

Igen, van: Dátum formázása

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

Válasz

Egy másik lehetőség egy kiterjesztési módszer létrehozása, például:

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

A következőképpen használná:

var dateString = DateTime.Now.ToYMD(); 

A megvalósított bővítmény a Nullable DateTime értékeknél is működik.

Ha sokat dolgozol ezekkel az „ééééHHdd” formátumú DateTime értékekkel, a kiterjesztési módszer előnye, hogy kevesebbet gépel.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük