Another option you can do is to overload DateTimeFormatInfo with .ToString(...) and not overload string .
public static readonly System.Globalization.DateTimeFormatInfo MyDateTimeFormatInfo = new System.Globalization.DateTimeFormatInfo() { ShortDatePattern = "yyyy-MM-dd", LongTimePattern = "", };
Now you can do var targetdate = DateTime.Now.ToString(MyDateTimeFormatInfo); which is almost the same as using a string, but you have a lot more control over many other formatting properties.
Enigmativity
source share