如何将两个字符串转换为DateTimes并在VB.NET中进行比较?

时间:2009-04-10 17:36:05

标签: vb.net datetime

字符串从数据库返回,格式为:'00 / 00/0000'我需要将其与用户以相同格式输入的日期进行比较。如何进行转换并比较两个日期?

5 个答案:

答案 0 :(得分:2)

使用DateTime结构上的静态ParseExact方法转换字符串。您还将传递所需的格式,dd / MM / yyyy或MM / dd / yyyy,具体取决于您想要的格式(00/00/0000的示例并未提供适用于您的格式的任何指示)。

答案 1 :(得分:1)

您可以使用


Dim dateA = DateTime.ParseExact(firstDateString, @"dd\/MM\/yyyy", Null)
Dim dateB = DateTime.ParseExact(secondDateString, @"dd\/MM\/yyyy", Null)
Dim areEqual = (dateA = dateB);

假设您的日期格式为日/月/年。 如果是月/日/年只需交换dd和MM

答案 2 :(得分:0)

尝试这样的事情:

String.Compare("00/00/0000", dateTime.ToString("MM/dd/yyyy"))

但也许更好的方法是做到这一点:

DateTime.Equals(yourDateTime, DateTime.Parse(databaseDateTime));

答案 3 :(得分:0)

尝试以下

Dim date1 = CDate(firstDateString)
Dim date2 = CDate(secondDateString)
Dim comp = date1 = date2

答案 4 :(得分:0)

当你说比较时,你是否试图分析日期是相同的(到当天)还是在几天的时间内?如果要比较日期是否相同那么你可以只比较字符串或使用date.equals(如在此之前的帖子中所提到的),如果你试图确定一个范围,你将不得不使用日期比较

        Dim lDate1 As String = "29/03/2009"
    Dim lDate2 As String = "30/03/2009"
    Dim lPeriod As Int16 = 7

    If lDate1 = lDate2 Then
        '** Dates the same
    End If

    If Date.Equals(Date.ParseExact(lDate1, "dd/MM/yyyy", Nothing), Date.ParseExact(lDate2, "dd/MM/yyyy", Nothing)) Then
        '** The same
    End If

    If Date.Compare(Date.ParseExact(lDate1, "dd/MM/yyyy", Nothing), Date.ParseExact(lDate2, "dd/MM/yyyy", Nothing)) > (lPeriod * -1) And Date.Compare(Date.ParseExact(lDate1, "dd/MM/yyyy", Nothing), Date.ParseExact(lDate2, "dd/MM/yyyy", Nothing)) < lPeriod Then
        '** Within the period
    End If