我正在使用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
?
答案 0 :(得分:40)
您必须使用正确的格式字符串Date.ParseExact
或Date.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);
希望这有帮助。