2012-09-20 96 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

相關問題