我想在创建文件时为文件名添加时间戳,但是我尝试使用空格和斜杠输出大多数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()
有效但不完全是人类可读的。如何将输出格式化为人类可读的时间戳,其中包含可在文件名或扩展名中使用的日期和时间?最好像2011-19-9--13-45-30
?
答案 0 :(得分:150)
您可以使用:
DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
答案 1 :(得分:85)
我会使用ISO 8601格式,不使用分隔符:
DateTime.Now.ToString("yyyyMMddTHHmmss")
答案 2 :(得分:11)
我有类似的情况,但我想要一致的方法,以便能够使用文件名中的DateTime.Parse,所以我去了
DateTime.Now.ToString("s").Replace(":", ".") // <-- 2016-10-25T16.50.35
当我想解析时,我可以简单地反转Replace调用。这样我就不必输入任何yymmdd内容或猜测DateTime.Parse允许的格式。
答案 3 :(得分:6)
以下最常用的时间格式说明符列表。
dd - 天 ,从01到31。
MM - 月 ,从01到12。
yyyy - 年 为四位数字。
hh - 小时 ,使用 12小时时钟01至12。
mm - 分钟 ,从00到59。
ss - second ,从00到59。
HH - 小时 ,使用 24小时时钟00至23。
tt - AM / PM 指示符。
使用上述内容,您将能够为文件名形成唯一的名称。
这里我提供了示例
string fileName = "fileName_" + DateTime.Now.ToString("MM-dd-yyyy_hh-mm-ss-tt") + ".pdf";
<强> OR 强>
如果您不喜欢使用符号,也可以尝试使用符号。
string fileName = "fileName_" + DateTime.Now.ToString("MMddyyyyhhmmsstt") + ".pdf";
希望这对现在或将来的某人有所帮助。 :)
答案 4 :(得分:5)
我个人喜欢这样:
DateTime.Now.ToString("yyyy-MM-dd HH.mm.ss")
因为它区分了日期和时间。
答案 5 :(得分:3)
您可以尝试使用
var result = DateTime.Now.ToString("yyyy-MM-d--HH-mm-ss");
答案 6 :(得分:2)
您可以为文件创建路径:
string path = "fileName-"+DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt";
答案 7 :(得分:1)
使用interpolation字符串&amp; format specifier:
var filename = $"{DateTime.Now:yyyy.dd.M HH-mm-ss}"
或者如果你不在美国:
var filename = $"{DateTime.Now:yyyy.M.dd HH-mm-ss}"
此功能在C#6及更高版本的语言中可用。
答案 8 :(得分:-1)
尝试一下:
time.ToLongDateString()
输出:“ 2018年8月24日,星期五”
或使用格式:
time.ToString("yyyy_MM_dd")
输出:“ 2018_08_24”