'Microsoft.VisualBasic.dll中的System.InvalidCastException'

时间:2018-11-05 03:40:52

标签: vb.net

我对不同的帖子做了一些研究,得出的结论是我的代码如下所示:

Public Class Form1
    Private Sub btnGetTime_Click(sender As Object, e As EventArgs) Handles btnGetTime.Click
        getTime.ShowDialog()
        lblTime.Text = DateAdd(DateInterval.Second, 0, CDate(lblTime.text))
    End Sub
End Class

在“ CDate(lblTime.text)”处有错误。现在,我几乎不知道这段代码的大部分含义。我想这就是VB的工作方式,请稍后学习。问题是我无法使用cDate将字符串:lblTime.text转换为日期格式?为什么不?我正在使用cDate()?

错误显示为:

System.InvalidCastException: 'Conversion from string "Label1" to type 'Date' is not valid.'

解决方案:

问题出在maskedtextbox上,我在其中有一个字符串作为预览。问题来自将该字符串转换为日期。

enter image description here

应该是:

enter image description here

1 个答案:

答案 0 :(得分:1)

您正在尝试将字符串转换为日期。您可以为此使用Convert.ToDateTime函数。

lblTime.Text = "2018-11-05"

Dim date as Date = Convert.ToDateTime(lblTime.Text)

date.ToString("yyyy-MM-dd"); //to convert back to string.

如果您的日期具有自定义格式,请查看DateTime.ParseExact,以便您也可以指定格式。

您可以阅读有关here的信息。

如果您的日期格式为11/05/2018

lblTime.Text = "11/05/2018"

Dim dt as Date = DateTime.ParseExact(lblTime.Text, "MM/dd/yyyy", Nothing)

date.ToString("yyyy-MM-dd"); //to convert back to string

Custom Date and Time Format Strings