如何从VB.Net中的日期删除00:00:00?

时间:2012-08-09 10:43:54

标签: asp.net vb.net date datetime formatdatetime

我有一个数据表(由数据库使用dataadaptor返回),在出生日期结束时DateOfBirth字段00:00:00。我想删除那些00:00:00,所以我写了一个函数,但它没有做的工作,我不知道为什么。任何人都可以向我建议如何从00:00:00中移除DateOfBirth。我没有数据库或存储过程的权限。

    Dim DOB As New DateTime
    Dim newDob As String = ""

        For Each x In dt.Rows

            If x("DateOfBirth") <> String.Empty AndAlso IsDate(x("DateOfBirth")) Then

                DOB = CDate(x("DateOfBirth"))
                newDob = DOB.ToString("dd/MM/yyyy")
                x("DateOfBirth") = newDob

            End If
        Next

2 个答案:

答案 0 :(得分:5)

您无法从日期中删除00:00:00,只能从日期字符串中删除。您可以像ToString("dd/MM/yyyy")一样在显示日期字符串时将其删除,但x("DateOfBirth")是日期值(如if语句中所述),它会测量刻度(10-pow -7 of a)从1970年1月1日(sql datetime)或1/1/0001(sql datetime2或c#DateTime)。只有将日期值转换为字符串时,日期值才具有任何字符串表示形式。

答案 1 :(得分:1)

DateTime中的datarow条目实际上是一大堆二进制数据。 00:00:00只是它的字符串表示。你正在做的是将21/1/1978放入日期字段,但就计算机而言,这与21/1/1978 00:00:00的日期相同,所以你所做的事情没有效果。

当您将数据输出到字符串时,您应该做的是调整日期的显示。在那里,您可以使用.ToString("dd/MM/yyyy")根据需要对其进行格式化。