Je développe asp.net
site utilisant vb
framework 3.5.
J'ai des difficultés à convertir les données de chaîne en date, j'ai essayé d'utiliser la fonction cdate,
J'ai une variable sdate qui est une variable de chaîne et la date y est stockée qui vient de la zone de texte en tant que jj/mm/aaaa maintenant je veux convertir cette chaîne en une variable de date car j'ai besoin d'effectuer les opérations comme ajouter un jour ou soustraire un jour.
Veuillez me guider sur la façon de procéder. j'obtiens l'erreur sur la 3ème ligne comme, String was not recognized as a valid DateTime
. J'ai essayé de faire comme suit mais l'erreur vient
Dim sdate As String
Dim expenddt As Date
expenddt = Date.Parse(edate)
expenddt = expenddt.AddDays(-1)
Mais j'ai l'erreur comme
La conversion de String en type Date n'est pas valide.
Comment puis-je obtenir un Date
de la chaîne?
Vous devez utiliser Date.ParseExact
ou Date.TryParseExact
avec une chaîne de format correcte.
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)
Personne n'a mentionné cela, mais dans certains cas, l'autre méthode ne parvient pas à reconnaître le datetime ...
Vous pouvez essayer ceci à la place, qui convertira la représentation sous forme de chaîne spécifiée d'une date et d'une heure en une valeur de date et d'heure équivalente
string iDate = "05/05/2005";
DateTime oDate = Convert.ToDateTime(iDate);
MessageBox.Show(oDate.Day + " " + oDate.Month + " " + oDate.Year );
Essayez de voir si le code suivant vous aide:
Dim iDate As String = "05/05/2005"
Dim oDate As DateTime = Convert.ToDateTime(iDate)
Essayez d'utiliser la méthode DateTime.ParseExact, dans laquelle vous pouvez spécifier à la fois le masque datetime et la chaîne analysée d'origine. Vous pouvez en lire plus ici: MSDN: DateTime.ParseExact
Essayez de convertir la date comme ceci:
Dim expenddt as Date = Date.ParseExact(edate, "dd/mm/yyyy",
System.Globalization.DateTimeFormatInfo.InvariantInfo);
J'espère que cela t'aides.