C# 从文本文件读入日期/从日期时间中排除时间

C# 从文本文件读入日期/从日期时间中排除时间,c#,datetime,text-files,C#,Datetime,Text Files,我有一个文本文件,每一行都是一个句子。每句话的结尾都有一个打字或制作的日期。例如: 布拉2013年3月14日 当我从文本文件中读入该行时,我收到一个错误,表示格式异常未处理 x.DateOfSentence = DateTime.ParseExact(lineArray[lineArray.Length-1], "M/D/YYYY", null); 其中x是语句对象的名称,日期是名为语句的类中的访问器 我尝试了常规的DateTime.Parse,但是仍然会出现错误 当我从文本文件中读

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

布拉2013年3月14日

当我从文本文件中读入该行时,我收到一个错误,表示格式异常未处理

x.DateOfSentence = 
    DateTime.ParseExact(lineArray[lineArray.Length-1], "M/D/YYYY", null);
其中x是
语句
对象的名称,
日期
是名为
语句
的类中的访问器

我尝试了常规的
DateTime.Parse,但是仍然会出现错误


当我从文本文件中读取日期时,是否有方法排除
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.
var行=新列表();
foreach(文件中的var行。ReadLines(文件名))
{
//执行上述操作
行。添加(行);
}
//lines now是一个列表,其中包含所有已删除日期的行。

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

lineArray[lineArray.Length-1]
的精确值是多少?如果它看起来像2013年3月14日的
bla
,那么你所拥有的当然不会起作用。精确解析。卡里莫姆格:很高兴它对你有用。如果此答案解决了您的问题,请将其标记为已接受答案。