DateTime.ToString() format that can be used in a filename or extension?

pdizz picture pdizz · Sep 19, 2012 · Viewed 116.1k times · Source

I want to add a timestamp to filenames as files are created but most of the DateTime methods I've tried output something with spaces and slashes. For instance:

Debug.WriteLine(DateTime.Now.ToString()); // <-- 9/19/2012 1:41:46 PM
Debug.WriteLine(DateTime.Now.ToShortTimeString()); // <-- 1:41 PM
Debug.WriteLine(DateTime.Now.ToShortDateString()); // <-- 9/19/2012
Debug.WriteLine(DateTime.Now.ToFileTime()); // <-- 129925501061462806

ToFileTime() works but is not exactly human-readable. How can I format the output to a human-readable timestamp with date and time that can be used in a filename or extension? Prefereably something like 2011-19-9--13-45-30?

Answer

Kristof Claes picture Kristof Claes · Sep 19, 2012

You can use this:

DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");