C# String.replace删除反斜杠
我有一个问题,我确信它很简单,但它在我的代码中不起作用。我正在创建一个日志文件,我想将日期连接到文件名,以便他们知道日志是何时生成的。My string.replace没有从我已转换为字符串的日期中删除“\” 见下面的代码:C# String.replace删除反斜杠,c#,asp.net,replace,C#,Asp.net,Replace,我有一个问题,我确信它很简单,但它在我的代码中不起作用。我正在创建一个日志文件,我想将日期连接到文件名,以便他们知道日志是何时生成的。My string.replace没有从我已转换为字符串的日期中删除“\” 见下面的代码: string DateNow = Convert.ToString(System.DateTime.Now); DateNow = DateNow.Substring(0, 10); DateNow.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中的文件名不能包含\字符。你知道为什么替换方法不起作用吗
谢谢。它正在工作,但您没有存储结果。它需要阅读
DateNow = DateNow.Replace(@"\", "-");
但这只是一个糟糕解决方案的补丁。为什么不先用正确的方法来做呢?使用DateTime.ToString
代替。例如:
string DateNow = System.DateTime.Now.ToString("yyyy-MM-dd"); // or any other format
您已经使用@符号转义了反斜杠,因此replace函数查找的是“\\”,而不是“\”。要使代码正常工作,请将其更改为:
DateNow = DateNow.Replace(@"\", "-");
直接
System.DateTime.Now.Date.ToString('MM-dd-yyyy')代码>
或
DateTime
日期与时间
string newDate = DateTime.Now.ToString().Replace('/','-');
或仅限日期
string newDate = DateTime.Now.Date.ToString().Replace('/','-');
输出
2012年9月27日下午5:20:12
您还可以编写yyyy/MM/dd
查看此链接了解更多日期格式System.DateTime.Now.ToString('MM-dd-yyyy');谢谢我没有想到使用Now.ToString(“yyyy-MM-dd”)作为设置日期格式的方法。我将此标记为正确答案,因为Jon非常重视使用自定义格式而不是使用替换来删除字符。
string DateNow = System.DateTime.Now.ToString("yyyy-MM-dd");