我正在尝试这样格式化文件内容:
0126252019-05-06 14:47:06 1098500020
但是每次我得到这个结果:
01262524. 5. 2019. 14:47:08 1098500020
显然日期和时间的格式不符合我的要求。
这是我的代码:
StreamWriter file = new System.IO.StreamWriter("C:\\MyMainFolder\\MyFilesFolder\\" + 15050 + ".flr");
file.WriteLine(12625.ToString("D6") + string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now + " " + 1098500020));
file.Close();
我在撰写时尝试格式化DateTime.Now
string.Format("{0:yyyy-MM-dd HH:mm:ss}"
但是看起来不起作用
谢谢大家
干杯!
答案 0 :(得分:3)
问题在于,+
在以下表达式中被应用为字符串连接:
string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now + " " + 1098500020);
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// C# makes this one string, and passes it for formatting.
将您打算在格式字符串中进行的串联移动将解决此问题:
string.Format("{0:yyyy-MM-dd HH:mm:ss} 1098500020", DateTime.Now);
答案 1 :(得分:3)
您正在将DateTime.Now + " " + 1098500020
传递到string.Format
,而该)
不会由您指定的格式字符串进行解析。要解决此问题,您应该移动string.Format
。
但是,您应该使用var someInteger = 12625;
var line = $"{someInteger:D6}{DateTime.Now:yyyy-MM-dd HH:mm:ss} 1098500020";
创建整个字符串,包括前缀,,或者为更清晰的代码使用string interpolation,例如:
google drive
答案 2 :(得分:0)
考虑使用
string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now) + " " + 1098500020
仅将日期传递为字符串格式