Convertire una stringa in un datetime

Sto sviluppando il sito di asp.net usando vb framework 3.5 .

Sto avendo difficoltà a convertire i dati delle stringhe in Data Ho provato ad usare la funzione cdate,

Ho una variabile sdate che è una variabile stringa e la data è memorizzata in essa che proviene da textbox come gg / mm / aaaa ora voglio convertire questa stringa in una variabile Date in quanto ho bisogno di eseguire le operazioni come Aggiungi un giorno o Sottrai un giorno.

Per favore guidami come andare su questo. ottengo l’errore su 3a linea come, String was not recognized as a valid DateTime . Ho provato a fare come segue, ma l’errore arriva

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

Ma ottengo l’errore come

La conversione da stringa a tipo data non è valida.

Come posso ottenere una Date dalla stringa?

Dovresti utilizzare Date.ParseExact o Date.TryParseExact con la stringa di formato corretta.

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

O

  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) 

O

 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) 

Prova a convertire la data in questo modo:

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

Spero che questo ti aiuti.

Nessuno ha menzionato questo, ma in alcuni casi l’altro metodo non riesce a riconoscere il datetime …

È ansible provare questo, che convertirà la rappresentazione di stringa specificata di una data e un’ora in un valore di data e ora equivalente

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

Prova a utilizzare il metodo DateTime.ParseExact, in cui puoi specificare sia la maschera datetime che la stringa originale analizzata. Puoi leggerlo qui: MSDN: DateTime.ParseExact

Prova a vedere se il seguente codice ti aiuta:

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