2012-09-20 66 views
0

为什么下面的代码引发异常:“从字符串”00-25-2011“转换为键入”Date“无效。“?从字符串“00-25-2011”到字符“Date”的转换无效

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     Dim Test As Date 
     Test = "2012-01-25" 
     MsgBox(Test) 
     Test = Format(DateAdd("d", -31, Test), "mm-dd-yyyy") 
     MsgBox(Test) 
    End Sub 

相同的代码在VB6应用程序中成功运行。我不明白为什么月份部分是:00.

+0

MsgBox方法在asp.net应用程序中做什么?这是你的自定义方法吗? – Shyju

+0

@Shyju,msgbox是一个标准的.NET消息框。 – w0051977

+0

在Web?我的意思是ASP.NET?您标记了ASP.NET! – Shyju

回答

7

使用“MM”数月,而不是“mm”,表示分钟数。

此外,我建议使用DateTime.ParseExact,因为它给你更多的控制。

+0

vbscript和vb6“米”是月 - vb.net它是“MM”,你得到这个更快然后我 –

+0

谢谢+1。你知道为什么它不是VB6中的大写字母吗? – w0051977

+0

@Scott塞尔比,我认为一个VB6应用程序需要mm。 – w0051977

0

您正在应用的格式函数返回一个字符串,但您正试图将其分配回日期。

+0

错误是关于字符串到日期失败的转换,而不是关于分配中的类型不匹配。阅读问题标题。 :-) –

+1

只是想指出Format函数是不需要的。当我第一次将他的代码投入IDE并取出格式时,它完美运行。 – APrough

相关问题