可以在文件名或扩展名中使用的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和时间。