3 votes

vérification et conversion d'une chaîne de caractères en date vb.net

Je suis un débutant en VB.NET et je suis bloqué sur une chose très simple, les formats de date.

Je travaille sur une application qui télécharge des données depuis des feuilles Excel vers une base de données sql server. L'application n'accepte les dates que si elles sont au format mm/dd/yyyy. Sinon, elle doit rejeter toutes les dates.

Maintenant, j'ai du mal à vérifier son format. Voici mon code.

Dim ROHSDate As String
ROHSDate = Trim(filterString(holdingTank))
... 
here i need to check if it is in mm/dd/yyyy format

Aidez-moi, s'il vous plaît.

7voto

Jon Skeet Points 692016

Utilice DateTime.TryParseExact qui vous permet de spécifier le format - il tentera de l'analyser, en plaçant la valeur analysée dans un paramètre de sortie en cas de succès, et renverra succès/échec :

Dim dt As DateTime
If (DateTime.TryParseExact(ROHSDate, "mm/dd/yyyy", \
                           CultureInfo.InvariantCulture, \
                           DateTimeStyles.None, \
                           Out dt))
    UseDateTime(dt)
End If

Évidemment, ajoutez Else etc. si vous en avez besoin.

(Je crois que dans le VB moderne les continuations de ligne peuvent être inutiles, mais bon... j'espère que vous avez compris).

Notez que j'ai explicitement utilisé CultureInfo.InvariantCulture de sorte que si le code est exécuté sur une machine qui utilise des séparateurs de date différents ou un calendrier différent, cela ne fera aucune différence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X