可以在文件名或扩展名中使用的DateTime.ToString()格式?

我想添加一个时间戳到文件名作为文件被创build,但我试过的大部分DateTime方法输出的东西与空格和斜线。 例如:

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()作品,但不完全是人类可读的。 我怎样才能把输出格式化为一个可读的时间戳,date和时间可以在文件名或扩展名中使用? 好像2011-19-9--13-45-30

你可以使用这个:

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

我将使用不带分隔符的ISO 8601格式:

 DateTime.Now.ToString("yyyyMMddTHHmmss") 

我有类似的情况,但我想要一个一致的方式,以便能够从文件名中使用DateTime.Parse,所以我去

 DateTime.Now.ToString("s").Replace(":", ".") // <-- 2016-10-25T16.50.35 

当我想parsing时,我可以简单地颠倒Replace调用。 这样我就不必input任何yymmdd东西或猜测DateTime.Parse允许的格式。

你可以试试

 var result = DateTime.Now.ToString("yyyy-MM-d--HH-mm-ss"); 

你可以为你的文件制作一个path如下:

 string path = "fileName-"+DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt"; 

我个人喜欢这样:

 DateTime.Now.ToString("yyyy-mm-dd hh.mm.ss") 

因为它区分date和时间。