Answers:
DateTime.Now.ToString("yyyyMMddHHmmssfff")
string.Format("{0:yyyy-MM-dd_HH-mm-ss-fff}", DateTime.Now)
;
或内插字符串
$"{DateTime.Now:yyyy-MM-dd_HH-mm-ss-fff}"
有以下自定义格式说明符y(年),M(月),d(天),h(12小时),H(24小时),m(分钟),s(秒),f(第二分数),F (第二部分,尾随零被修剪),t(PM或AM)和z(时区)。
使用扩展方法
用法:
string result = "myfile.txt".AppendTimeStamp();
//myfile20130604234625642.txt
扩展方式
public static class MyExtensions
{
public static string AppendTimeStamp(this string fileName)
{
return string.Concat(
Path.GetFileNameWithoutExtension(fileName),
DateTime.Now.ToString("yyyyMMddHHmmssfff"),
Path.GetExtension(fileName)
);
}
}
我更喜欢使用:
string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt";
ToFileTime()有什么作用?
将当前DateTime对象的值转换为Windows文件时间。
public long ToFileTime()
Windows文件时间是一个64位值,代表自1601年1月1日(CE)协调世界时(UTC)的12:00午夜以来经过的100纳秒间隔数。Windows使用文件时间记录应用程序创建,访问或写入文件的时间。
将“当前日期和时间”作为文件系统上文件的名称。现在调用string.Format方法,并将其与DateTime.Now结合使用,以得到一种基于日期和时间输出正确字符串的方法。
using System;
using System.IO;
class Program
{
static void Main()
{
//
// Write file containing the date with BIN extension
//
string n = string.Format("text-{0:yyyy-MM-dd_hh-mm-ss-tt}.bin",
DateTime.Now);
File.WriteAllText(n, "abc");
}
}
输出:
C:\Users\Fez\Documents\text-2020-01-08_05-23-13-PM.bin
"text-{0:yyyy-MM-dd_hh-mm-ss-tt}.bin"
文本-所需输出的第一部分文件都将以文本开头-
{0:表示这是一个字符串占位符。零表示在此插入的参数的索引
yyyy-用四位数打印年份,后接破折号这有一个“年份10000”问题
MM-以两位数字打印月份
dd_以两位数字打印日期,后跟下划线
hh-以两位数字显示小时
mm-也以两位数字打印分钟
ss-如预期,它将打印秒
tt根据一天中的时间打印AM或PM
Path.GetDirectoryName(fileName)
以获得文件的完整路径。然后替换string.Concat()
用Path.Combine()
的获得完整的文件名。