在ASP.Net中将日期从TextBox转换为日期

时间:2011-11-29 12:07:29

标签: asp.net vb.net visual-studio-2010

我希望从两个TextBox中获取日期与日期之间的差异。

我的代码在这里

Dim ts As TimeSpan            
ts = CDate(txtTo.Text) - CDate(txtFrom.Text)
txtDays.Text = ts.Days() + 1

但是此代码抛出了这样的错误

Conversion from string "16/11/2011" to type 'Date' is not valid.

4 个答案:

答案 0 :(得分:7)

通常,尽量避免使用像CDate这样的旧VB函数。在这种情况下,您应该使用Parse方法:

Dim ts As TimeSpan
ts = DateTime.Parse(txtTo.Text) - DateTime.Parse(txtFrom.Text)

或者,如果您事先知道日期格式:

Dim fmt As String = "dd/MM/yyyy"
Dim ts As TimeSpan
ts = DateTime.ParseExact(txtTo.Text, fmt, Nothing) - DateTime.ParseExact(txtFrom.Text, fmt, Nothing)

答案 1 :(得分:3)

尝试使用ParseExact,如:

    Dim s As String = txtFrom.Text.trim
    Dim pattern As String = "dd/MM/yyyy"
    Dim parsedDate As Date = Date.ParseExact(s, pattern, Nothing)

这样你可以指定使用的字符串的格式。

更直接的例子:

Dim pattern As String = "dd/MM/yyyy"
ts = Date.ParseExact(txtTo.Text, pattern, Nothing) - Date.ParseExact(txtFrom.Text, pattern, Nothing)

答案 2 :(得分:0)

您可以直接将字符串转换为DateTime。您需要使用DateTime.Parse函数将字符串解析为DateTime。

可以找到语法here

答案 3 :(得分:0)

使用函数的重载版本:

 DateTime value = DateTime.Parse(txtFrom.Text,  new CultureInfo("gu-IN", false));

其中“gu-IN”适用于古吉拉特语(印度)