Jeg jobber med noen rare API-er som krever at datoene sendes i ÅÅÅÅMMDD-format.
Jeg tenkte å gjøre noe slikt:
string date = string.Concat(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
Finnes det bedre praksis?
Kommentarer
Svar
Ja det er: Datoformatering
var dateString = DateTime.Now.ToString("yyyyMMdd");
Svar
Et annet alternativ vil være å lage utvidelsesmetoder som:
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; } }
Du vil bruke den slik:
var dateString = DateTime.Now.ToYMD();
Den implementerte utvidelsen fungerer også for Nullable DateTime-verdier.
Hvis du gjør mye arbeid med disse «yyyyMMdd» -formaterte DateTime-verdiene, har utvidelsesmetoden fordelen av mindre å skrive.
DateTime.Now
flere ganger som dette. For eksempel hvisDateTime.Now.Month
bare heter før midnatt 31. januar ogDateTime.Now.Day
etter midnatt, får du datoen som20120101
. Det ' er usannsynlig, men absolutt mulig.