从字符串到日期时间的转换不是由CLR自动完成的

时间:2015-01-22 05:58:14

标签: asp.net vb.net datetime

我必须检索包含日期的标签值并将其与当前日期进行比较。我尝试将其值转换为日期然后格式化,但它无法正常工作。我使用了CDATEConvert.datetimeCTYPE。但是每个人都给出了相同的结果。我的代码如下:

Dim datevoucher As DateTime = Format(CType(lblDate.Text, DateTime), "yyyy-MM-dd")

我收到以下错误:

Conversion from string "05/31/2009" to type 'Date' is not valid

就我而言lblDate.text = "05/31/2009"

我也尝试过如下操作,但仍显示错误为" cannot convert string to datetime."

Dim datevoucher As DateTime = Format(DateTime.Parse(lblDate.Text), "yyyy-MM-dd")

我也试过使用下面的文化,但是再次没有成功,它最初工作,但后来它突然开始抛出错误。我在代码中根本没有改变任何内容:

Dim dt As DateTime = DateTime.Parse(lblDate.Text,
             System.Globalization.CultureInfo.GetCultureInfo("en-GB").DateTimeFormat)

从过去的两天开始,我已经尝试了一些我能在互联网上找到的东西,但问题仍然存在。

1 个答案:

答案 0 :(得分:0)

为什么这不起作用

Dim datevoucher As DateTime = Format(CType(lblDate.Text, DateTime), "yyyy-MM-dd")

因为

  • Format()将以字符串格式生成输出,但不会直接转换为DateTime格式。这就是你收到错误的原因
  • 文本也无法转换为dateTime格式。 在此,我建议您[CDate][1]进行此次转化

对于示例

    Dim s As String = "05/31/2009"
    Dim mydate As DateTime = CDate(s)

您的方案

Dim datevoucher As DateTime = CDate(lblDate.Text)