For an application we develop, we use the \"G\"
format everywhere in our application.
We want to change a little bit this format:
We need to display
I tested this and looks like is returning what you are looking for except for the "nice to have".
string now = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.f tt", CultureInfo.GetCultureInfo("en-US"));
You can set the CurrentCulture for the current thread and specify a deviating LongTimePattern:
CultureInfo culture = Thread.CurrentThread.CurrentCulture.Clone();
change the culture.DateTimeFormat.LongTimePattern = "your pattern";
Thread.CurrentThread.CurrentCulture = culture;
I'd create an extension method for DateTime, something like a ToPrettyPrintStringg() or whatever you wanna call it that returns the date in the format you wish, this way you can get it to display any date the way you want everywhere.