将前导零添加到时间
本文关键字:时间 添加 | 更新日期: 2023-09-27 18:27:47
在我的控制台应用程序中,我正在向文本文件写入它以以下小时格式执行的小时:
DateTime.Now.ToString("t")
但是,此格式不包含前导零。创建文本文件后,我阅读了它,然后发送了一封包含内容的电子邮件。
string x = DateTime.Now.ToString("hh");
Logs.writeSummary(DateTime.Now.ToString("t"), "Succeeded",x);
例如,在它生成文本文件后,它将是这样的:
上午6:09:成功
上午7:09:成功
上午8:09:成功
上午9:09:成功
上午10:09:成功
上午11:09:成功
下午12:09:成功
下午1:09:成功
下午2:09:成功
下午3:18:成功
下午4:09:成功
下午5:09:成功
下午6:09:成功
我试图解决的问题是所有Succeeded
都应该对齐。
我采取的第一种方法是找到一种添加leading zero
的方法,它可以解决我的问题。但它并不成功。所以我采取了不同的方法。
我将hh
格式的当前小时作为函数的参数,如果当前小时不是10, 11, 12
,则在小时之前添加space
。
public static void writeSummary(string dt, string msg, string f)
{
string filePath = @"C:'Logs'summary.txt";
string _dt = dt.ToString();
string _msg = msg;
string _f = f;
using (StreamWriter writer = new StreamWriter(filePath, true))
{
if (_f == "10" || _f == "11" || _f == "12")
{
writer.WriteLine(_dt + ":" + _msg);
}
else
{
writer.WriteLine(" "+ _dt + ":" + _msg);
}
}
}
这修复了文本文件中的问题。所有的东西都是对齐的,然而,当我读到它并发送电子邮件时,我丢失了space
,最后在上面发布了未对齐的文本。
public static void readSummary()
{
try
{
using (StreamReader sr = new StreamReader(@"C:'Logs'summary.txt"))
{
String line = sr.ReadToEnd();
Console.WriteLine(line);
//send email using line
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
关于我该怎么解决这个问题,有什么建议吗?
谢谢。
不要使用DateTime.Now.ToString("t")
,而是使用自定义格式,如:
DateTime.Now.ToString("hh:mm tt");
请参阅:自定义日期和时间格式字符串