为什么CDate(integer)
不能在整数格式为YYYYMMDD
的情况下工作?
为什么这个愚蠢的网站不会让我提交这么简短的问题,除了最后的一些华夫饼干我没有别的东西可以添加
1> 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
所有TryParse
和TryParseExact
函数的优点部分是它们只返回一个布尔值,表示解析通过或失败。他们不会抛出异常。