为什么CDate(整数)不能在整数格式为YYYYMMDD的情况下工作?

时间:2012-03-14 14:47:18

标签: .net vb.net

为什么CDate(integer)不能在整数格式为YYYYMMDD的情况下工作?

为什么这个愚蠢的网站不会让我提交这么简短的问题,除了最后的一些华夫饼干我没有别的东西可以添加

1> 2等等等。

2 个答案:

答案 0 :(得分:5)

MSDN支持整数:

  

使用IsDate function确定是否可以将值转换为a   日期和时间。 CDate识别日期文字和时间文字但是   不是数字值。

这会返回false

Dim isValid = IsDate("20120314") ' false

但是,您可以将有效的日期表示用作字符串。例如:

Dim result = CDate(DateTime.Now.ToString("yyyy-MM-dd"))

答案 1 :(得分:4)

艾哈迈德说的话。此外,您可以在特定示例中使用TryParseExact函数...

Dim Value As Integer = 20120314

Dim MyDate As DateTime
If DateTime.TryParseExact(Value.ToString(), "yyyyMMdd", CultureInfo.CurrentCulture, DateTimeStyles.None, MyDate) Then
    'Do what you want with MyDate.  For example...
    Console.WriteLine(MyDate.ToShortDateString())
End If

所有TryParseTryParseExact函数的优点部分是它们只返回一个布尔值,表示解析通过或失败。他们不会抛出异常。