将字符串转换为日期时间

时间:2011-12-26 09:43:18

标签: vb.net date asp.net-3.5

我正在使用asp.net 框架3.5 开发vb网站。

我很难将字符串数据转换为Date 我尝试使用cdate函数,

我有一个变量sdate,它是一个字符串变量,并且日期存储在它中,它来自文本框,因为dd / mm / yyyy现在我想将此字符串转换为Date变量,因为我需要执行操作作为Add a a一天或减去一天。

请指导我如何解决这个问题。我在第3行收到错误String was not recognized as a valid DateTime。我试图按照以下方式做,但错误来了

Dim sdate As String 
Dim expenddt As Date
expenddt = Date.Parse(edate)
expenddt = expenddt.AddDays(-1)

但我得到的错误是

  

从String转换为Date类型无效。

如何从字符串中获取Date

5 个答案:

答案 0 :(得分:40)

您必须使用正确的格式字符串Date.ParseExactDate.TryParseExact

 Dim edate = "10/12/2009"
 Dim expenddt As Date = Date.ParseExact(edate, "dd/MM/yyyy", 
            System.Globalization.DateTimeFormatInfo.InvariantInfo)

OR

 Dim format() = {"dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy"}
 Dim expenddt As Date = Date.ParseExact(edate, format,  
     System.Globalization.DateTimeFormatInfo.InvariantInfo, 
     Globalization.DateTimeStyles.None)

OR

Dim format() = {"dd/MM/yyyy", "d/M/yyyy", "dd-MM-yyyy"}
Dim expenddt As Date
Date.TryParseExact(edate, format, 
    System.Globalization.DateTimeFormatInfo.InvariantInfo, 
    Globalization.DateTimeStyles.None, expenddt)

答案 1 :(得分:3)

没人提到这一点,但在某些情况下,另一种方法无法识别日期时间......

您可以尝试这样做,它会将指定的日期和时间字符串表示转换为等效的日期和时间值

string iDate = "05/05/2005";
DateTime oDate = Convert.ToDateTime(iDate);
MessageBox.Show(oDate.Day + " " + oDate.Month + "  " + oDate.Year );

答案 2 :(得分:3)

尝试查看以下代码是否可以帮助您:

Dim iDate As String = "05/05/2005"
Dim oDate As DateTime = Convert.ToDateTime(iDate)

答案 3 :(得分:2)

尝试使用DateTime.ParseExact方法,您可以在其中指定datetime掩码和原始解析字符串。 您可以在此处阅读:MSDN: DateTime.ParseExact

答案 4 :(得分:2)

尝试像这样转换日期:

    Dim expenddt as Date = Date.ParseExact(edate, "dd/mm/yyyy", 
System.Globalization.DateTimeFormatInfo.InvariantInfo);

希望这有帮助。

相关问题