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
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.
DateTime.Now
t. Például, ha aDateTime.Now.Month
nevet csak január 31-én éjfél előtt ésDateTime.Now.Day
éjfél után megkapja a dátumot, például:20120101
. Ez ' nem valószínű, de mindenképpen lehetséges.