我有一个问题,我确信它很简单,但它在我的代码中不起作用。我正在创建一个日志文件,我想将日期连接到文件名,以便他们知道何时生成日志。我的string.replace没有从我已经转换为字符串的日期中删除“\”。
见下面的代码:
string DateNow = Convert.ToString(System.DateTime.Now);
DateNow = DateNow.Substring(0, 10);
DateNow.Replace(@"\\", "-");
string FileName = "log" + DateNow + ".txt";
// Write values to textfile and save to Log folder
using (StreamWriter sw = new StreamWriter(HttpContext.Current.Server.MapPath("~/Log" + FileName)))
{
sw.WriteLine(System.DateTime.Now);
sw.WriteLine("New user created");
sw.WriteLine("Username is: " + username);
sw.WriteLine("Password is: " + password);
sw.WriteLine("Company is: " + company);
sw.WriteLine("Email is: " + email);
sw.Dispose();
sw.Close();
}
这将引发异常,因为Windows中的文件名不能包含\ character。任何想法为什么替换方法不起作用?
感谢。
答案 0 :(得分:7)
它正在运行,但您没有存储结果。它需要阅读
DateNow = DateNow.Replace(@"\", "-");
但这只是一个糟糕解决方案的补丁。为什么不首先以正确的方式做到这一点?请使用DateTime.ToString
代替custom format string。例如:
string DateNow = System.DateTime.Now.ToString("yyyy-MM-dd"); // or any other format
答案 1 :(得分:2)
您已经使用@符号转义了反斜杠,因此替换函数正在查找“\\”,而不是“\”。要使代码正常工作,请将其更改为:
DateNow = DateNow.Replace(@"\", "-");
答案 2 :(得分:0)
直接System.DateTime.Now.Date.ToString('MM-dd-yyyy');
或强>
DateTime
日期与时间
string newDate = DateTime.Now.ToString().Replace('/','-');
或 Date
仅
string newDate = DateTime.Now.Date.ToString().Replace('/','-');
输出
2012年9月27日下午5:20:12
答案 3 :(得分:0)
无需执行任何操作split
或convert ToString()
string DateNow = System.DateTime.Now.ToString("yyyy-MM-dd");
代替yyyy-MM-dd
你也写yyyy/MM/dd
点击此链接可获取更多日期格式Dateformate