2013-03-15 59 views
0

我有一个文本文件,每行都是一个句子。最后的每个句子都有一个输入或制作日期。例如:从文本文件读取日期/排除时间DateTime

blablablablabla 2013年3月14日

当我从文本文件读取行了,我得到了一个错误说的格式的例外是未处理的。

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

其中x是Sentence对象的名称和DateOfSentence是在一个叫做Sentence类的访问。

我试过定期DateTime.Parse,但是,仍然给我错误。

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

+0

'lineArray [lineArray.Length-1]'的精确值是多少?如果它看起来像'blablablablabla 3/14/2013',那么当然你有什么将不会工作。解析**确切**。不是ParseApproximate。 – 2013-03-15 01:54:25

回答

1

如果您知道日期是在该行的末尾,用空格从句子分开,你可以找到并删除它:

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. 
+0

问题解决了。谢谢。 – 2013-03-15 02:50:50

+0

@KarimOumghar:很高兴为你工作。如果此答案解决了您的问题,请将其标记为接受的答案。 – 2013-03-15 10:03:23

0

通过显示的是在lineArray [lineArray.Length-1]做一些调试。这将是你的错误的原因,因为它可能不是日期。