检测/解析00:00:00(无日期)到日期时间

时间:2014-07-14 07:13:50

标签: .net vb.net datetime

在我的某个应用程序中,我正在从服务器收到date string

的示例:

2014-04-04 00:00:00
2013-05-07 13:00:36
2014-05-03
2014-02-01-07:00:00 '(obviously not a valid datetimeformat but thats been handled further inside the code)
00:00:00 'The null-date (meaning NULL is the value inside the database)

它的无效日期令我头疼。因为如果我尝试parse{00:00:00} datetime today我总是得到not the DateTime.Minvalue Dim i As DateTime i = DateTime.Parse(i) Console.WriteLine(i.ToString("yyyy-MM-dd HH:mmm:ss")) 'Returns 2014-07-14 00:00:00 Console.ReadLine() 的日期

代码示例:

no Regex

我想获得以下任何结果:

  1. 使用null-date (00:00:00)如何检测日期组件的存在(或不存在)以检测空日期
  2. 如何将DateTime.MinValue投射到日期时间,其中解析的输出为nothing.Net 2.0
  3. 我知道解决方案可能很简单,但我一直都错过了。我非常感谢有关此问题的任何解决方案或建议。

    注意:该软件很老,仍在String.Contains下运行

    注意:有效的日期时间可能包含“00:00:00”,因此无法{{1}} {{1}}。

1 个答案:

答案 0 :(得分:2)

您可以设置NoCurrentDateDefault,就像DateTime.Parse建议的帮助一样; - )

i = DateTime.Parse("00:00:00", Nothing, Globalization.DateTimeStyles.NoCurrentDateDefault)

MSDN:http://msdn.microsoft.com/en-us/library/system.datetime.parse%28v=vs.110%29.aspx

  

要解析的字符串可以采用以下任何一种形式:

     
      
  • ...

  •   
  • 包含时间但没有日期组件的字符串。该方法假定当前日期,除非您调用Parse(String,IFormatProvider,DateTimeStyles)重载并在styles参数中包含DateTimeStyles.NoCurrentDateDefault,在这种情况下该方法假定为0001年1月1日。

  •