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