如何使用 C# 创建带有日期时间的文本文件名
How to Create a Text Filename with DateTime using C#
我想用 DateTime.Now 创建一个文件名来存储每天使用异常处理捕获的错误。
我使用了DateTime.ToFileTime
,但是附加的格式不是日期格式。
string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt";
string path = "E:\ErrorCollector\ErrorCollector" + DateTime.Now.ToFileTime()+ ".txt";
FileStream fi = new FileStream(path, FileMode.OpenOrCreate);
StreamWriter sw1 = new StreamWriter(fi);
sw1.WriteLine(DateTime.Now + "" + ex.message);
我希望文件名像 "ErrorCollector17/08/2019"
您可以尝试使用ToString
函数与格式。
DateTime.Now.ToString("dd/MM/yyyy",new System.Globalization.CultureInfo("en-US"));
正如 Soundararajan 所说,我建议您使用
"ddMMyyyy"
或
"dd-MM-yyyy"
由于系统会混淆你的路径包含\
您不能创建包含以下任何字符的文件名:/:*?"<>| Windows,您可以这样做
string path = "E:\ErrorCollector\ErrorCollector" + DateTime.Now.ToString("dd-MM-yyyy")+ ".txt"
最短的答案是下面的代码:
DateTime.Now.ToString("yyyyMMddHHmmss", CultureInfo.InvariantCulture);
DateTime.Now
根据您计算机的时钟获取当前日期和时间。
.ToString(...)
将 DateTime 对象转换为字符串,其中包含可选格式作为参数。
"yyyyMMddHHmmss"
是您希望 DateTime 对象如何以字符串方式映射到哪里的模式。假设您计算机的时钟当前设置为 "August 8, 2019 12:34:56 PM",那么:
- yyyy = 是一个 4 位数的年份,如 2019
- MM = 是一个 2 位数的月份,例如 08
- dd = 是一年中的 2 位数日期,例如 08
- HH = 是 24 小时格式的 2 位数小时,例如 12
- mm = 是 2 位数分钟如 34
- ss=是一个2位数的秒如56
并且输出将是 20190808123456
。注意年月日时分秒的排列可以不分先后
CultureInfo.InvariantCulture
用于格式化或解析一个字符串,该字符串应该可以由独立于用户本地设置的软件解析(通过 source)
请注意,我们删除了分隔 DateTime 对象不同部分的特殊字符,以防止 Windows.
上的文件名出现问题
我想用 DateTime.Now 创建一个文件名来存储每天使用异常处理捕获的错误。
我使用了DateTime.ToFileTime
,但是附加的格式不是日期格式。
string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt";
string path = "E:\ErrorCollector\ErrorCollector" + DateTime.Now.ToFileTime()+ ".txt";
FileStream fi = new FileStream(path, FileMode.OpenOrCreate);
StreamWriter sw1 = new StreamWriter(fi);
sw1.WriteLine(DateTime.Now + "" + ex.message);
我希望文件名像 "ErrorCollector17/08/2019"
您可以尝试使用ToString
函数与格式。
DateTime.Now.ToString("dd/MM/yyyy",new System.Globalization.CultureInfo("en-US"));
正如 Soundararajan 所说,我建议您使用
"ddMMyyyy"
或
"dd-MM-yyyy"
由于系统会混淆你的路径包含\
您不能创建包含以下任何字符的文件名:/:*?"<>| Windows,您可以这样做
string path = "E:\ErrorCollector\ErrorCollector" + DateTime.Now.ToString("dd-MM-yyyy")+ ".txt"
最短的答案是下面的代码:
DateTime.Now.ToString("yyyyMMddHHmmss", CultureInfo.InvariantCulture);
DateTime.Now
根据您计算机的时钟获取当前日期和时间。
.ToString(...)
将 DateTime 对象转换为字符串,其中包含可选格式作为参数。
"yyyyMMddHHmmss"
是您希望 DateTime 对象如何以字符串方式映射到哪里的模式。假设您计算机的时钟当前设置为 "August 8, 2019 12:34:56 PM",那么:
- yyyy = 是一个 4 位数的年份,如 2019
- MM = 是一个 2 位数的月份,例如 08
- dd = 是一年中的 2 位数日期,例如 08
- HH = 是 24 小时格式的 2 位数小时,例如 12
- mm = 是 2 位数分钟如 34
- ss=是一个2位数的秒如56
并且输出将是 20190808123456
。注意年月日时分秒的排列可以不分先后
CultureInfo.InvariantCulture
用于格式化或解析一个字符串,该字符串应该可以由独立于用户本地设置的软件解析(通过 source)
请注意,我们删除了分隔 DateTime 对象不同部分的特殊字符,以防止 Windows.
上的文件名出现问题