C# 列表框的日期时间
本文关键字:日期 时间 列表 | 更新日期: 2023-09-27 18:31:14
我有一个带有.txt文件的服务器。程序将页面保存到文本文件,然后使用计数每行处理它。然后,我需要将其添加到日期时间,然后将其添加到列表中。
到目前为止,除了最后一部分日期时间和列表之外,它还不错。我总是得到格式异常。我已经尝试了一些尝试解析和解析的变体,但没有运气。
时间在这样的列表中:
06:06 AM
06:07
12:12
12:50
每行一个
消息框一次显示每个结果,没有错误和正确的信息。
while ((line = file.ReadLine()) != null)
{
// MessageBox.Show(line);
List<DateTime> Busarrivetime = new List<DateTime>();
// DateTime tryme = DateTime.Parse(line, CultureInfo.InvariantCulture);
// MessageBox.Show(tryme.ToString());
DateTime date;
Busarrivetime.Add(date = DateTime.ParseExact(line,"hh:mm tt", System.Globalization.CultureInfo.InvariantCulture)); // ERRORS ON THIS LINE
count++;
}
file.Close();
Console.ReadLine();
确切错误:
mscorlib 中发生了类型为"System.FormatException"的未处理异常.dll
这是我正在使用的列表。
您的时间格式不一致。例如,06:06 AM
有am/pm指示符,而12:12
没有。
因此,请考虑使用多种可能的格式。
DateTime.ParseExact(item, new[] { "hh:mm tt", "HH:mm" }, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None);
这应该有效
这是一个
简单的解决方案
我用这个DateTime.ParseExact("06:06 AM ", "hh:mm tt", System.Globalization.CultureInfo.InvariantCulture);
进行了测试
并得到了一个和你一样的例外。
但用这个测试
DateTime.ParseExact("06:06 AM", "hh:mm tt", System.Globalization.CultureInfo.InvariantCulture);
没有得到。文件正在选取尾随或前导空格。
用。Trim() 函数:)删除它们,然后测试
DateTime.ParseExact(("06:06 AM ").Trim(), "hh:mm tt", System.Globalization.CultureInfo.InvariantCulture);
可能只是文件末尾有一个额外的空行吗?
// add this just inside your while loop
if (String.IsNullOrWhiteSpace(line))
continue;
此外,您需要在 while 循环之前声明您的列表,否则您将只为每一行获取一个新列表,而不是添加到一个大列表中。