2016-02-17 64 views
1

我有一大堆需要使用正则表达式解析的文本文件。我收集的一些数据是各种格式的日期,例如2015年12月1日,2015年12月1日,12-1-15等。他们有时会列出一年的时间,吨。当我有两年的日期时,即12/1/1 1/8,第一次约会需要2015年,第二次约会需要2016年,我的问题就会发生。目前,我将它们解析为字符串并试图转换他们到DateTimes。这增加了当天的一年,所以如果在2015年解析,第二个日期是错误的,如果它在2016年解析,第一个日期是错误的。有没有一种方法可以确定Convert.ToDateTime自从字符串丢失之后增加了哪一年?如果我能确定这一点,我有办法确定哪一年需要添加。有没有办法确定Convert.ToDateTime是否添加了年份?

+0

为什么你的'12/1'应该是'2016',但是'1/8'应该是'2015'?或者你有像“12/1 - 1/8”这样的字符串?什么是你的解析模式_exactly_?一些示例输入和输出将很好.. –

+0

他们将是不同的年份,因为它们代表了一段时间。文字传达的信息是从2015年12月1日到2016年1月8日。文本可以在任何一年进行分析。如果在2015年12月16日解析,这两个日期都是2015年;如果它是在2016年6月1日解析的,那么这两个日期都会有2016年。这些日期将单独解析,它们会在文本上显示为12/1 - 1/8,但我需要将它们分别存储,所以我使用正则表达式来抓取每一个。正如我这样做,我想获得的价值,并将其同时转换为DateTime。 – stacy

回答

3

Convert.ToDateTime只是使用DateTime.Parse。我的理解是,当解释MM/dd格式时,它将始终假设当前年份。

在你的情况下,听起来你需要对如何处理这个问题做出一些决定。例如,你可以测试一下,如果后一个日期在先前的日期之前,你可以添加一个年份。

+0

我打算处理这个问题。我的问题在于,我想创建一个方法,它能够解析文本,获取一个日期的字符串值并将其转换为DateTime对象以返回其他内容来操作并确定年份是否正确或不正确。我只想知道是否添加了一年,这样可以更容易地确定它是否正确。 – stacy

相关问题