Je « travaille avec des API étranges qui nécessitent lenvoi des dates au format AAAAMMJJ.
Je pensais faire quelque chose comme ceci:
string date = string.Concat(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
Y a-t-il une meilleure pratique?
Commentaires
Réponse
Oui, il y a: Formatage de la date
var dateString = DateTime.Now.ToString("yyyyMMdd");
Réponse
Une autre option serait de créer une extension des méthodes comme:
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; } }
Vous lutiliseriez comme:
var dateString = DateTime.Now.ToYMD();
Lextension implémentée fonctionne également pour les valeurs Nullable DateTime.
Si vous travaillez beaucoup avec ces valeurs DateTime formatées « aaaaMMjj », la méthode dextension a lavantage de moins de saisie.
DateTime.Now
plusieurs fois comme ceci. Par exemple, siDateTime.Now.Month
est simplement appelé avant minuit du 31 janvier etDateTime.Now.Day
après minuit, vous obtiendrez la date comme20120101
. Elle ' est peu probable, mais certainement possible.