从文本文件中读取日期/从DateTime中排除时间

本文关键字:DateTime 排除 时间 读取 文本 文件 取日期 | 更新日期: 2023-09-27 18:04:03

我有一个文本文件,每行是一个句子。每句话的末尾都有打印或制作的日期。例如:

2013年3月14日

当我从文本文件中读取该行时,我得到一个错误,说格式异常未处理。

x.DateOfSentence = 
    DateTime.ParseExact(lineArray[lineArray.Length-1], "M/D/YYYY", null);

其中x是Sentence对象的名称,DateOfSentenceSentence类中的访问器。

我已经尝试了常规的DateTime.Parse,然而,这仍然给我错误。

是否有办法排除DateTime的时间部分,当我从文本文件中读取日期?

从文本文件中读取日期/从DateTime中排除时间

如果您知道日期位于行尾,与句子之间用空格隔开,则可以找到并删除它:

int pos = line.LastIndexOf(' ');
if (pos != -1)
{
    line = line.Substring(0, pos);
}

这将把所有内容都放到空格中,而不包含日期。

那么你可以做的是:

var lines = new List<string>();
foreach (var line in File.ReadLines(filename))
{
    // do the above
    lines.Add(line);
}
// lines now is a list that contains all of the lines with the dates stripped.

通过显示lineArray[lineArray. length -1]中的内容来进行一些调试。这将是导致错误的原因,因为它很可能不是日期。