IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

conversion de string en date


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut conversion de string en date
    Hello,

    Un problème qui a priori est tout con...

    J'ai une string qui contient une date (datetime en fait) au format suivant :
    yyyyMMdd hh:mm:ss

    Je dois en fait comparer deux dates. L'une provenant d'une db sql server et qui est déjà de type datetime donc pas de souci. L'autre provenant d'un fichier texte et qui est formaté comme ci-dessus.

    Je fais donc quelque chose qui ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dim laDateDuFicher as Date = Date.Parse(laDateEnString, leFormatQuiVaBien)

    Mon problème est que j'ai systématiquement une exception qui me dit que la string spécifiée n'est pas au bon format. J'imagine que cela se définit via le second paramètre de la fonction Parse mais je ne parviens pas à trouver le bon format à indiquer.

    Pourriez-vous m'aider svp ?

    Griftou.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Pour le cast de string vers Datetime, regarde du côté de ParseExact. Tu pourras alors utiliser le format de date que tu souhaites.

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Lors de mes recherches, je suis tombé sur ce ParseExact mais pareil, j'ignore ce qu'il faut que j'utilise comme paramètres.

    Je crois que mes recherches ne sont pas fructueuses car j'ignore les termes qu'il me faut rechercher...

    Il y a une pléthore d'exemple avec des strings pour lesquelles, les différentes parties de la date (année, mois, jour) sont séparés mais aucun qui parle du format que j'utilise qui est pourtant, si j'ai bien tout compris, le format universel pour sql server...

  4. #4
    Membre éclairé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Par défaut
    et en faisant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim toto as date
    toto = CDate(ta_string)

  5. #5
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Ce serait quand même aberrant qu'une conversion où rien n'est précisé fonctionne mieux mais je vais tout de même la tester.

    EDIT : C'est bien ce que je pensais. Cela ne fonctionne pas. Conversion non valide pour le message.

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Essaye quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim laDateDuFicher as Date = Date.ParseExact(laDateEnString, "dd/MM/yyyy hh:mm:ss")
    Entour le tout d'un try/catch histoire de catcher une éventuelle exception

  7. #7
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Le try catch est là depuis belle lurette ;-)

    Sinon pour le ParseExact je veux bien mais il manque un paramètre de type IFormatProvider...

    Mais sinon, si je te suis, le format que l'on passe en paramètre est le format dans lequel la date doit être créée ? Je croyais moi qu'il s'agissait du format dans lequel la date est encodée dans la string. Histoire que la fonction sache comme la parser. Non ?

  8. #8
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Au temps pour moi, je suis allé un peu vite en effet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim laDateDuFicher as DateTime = DateTime.ParseExact(laDateEnString, "dd/MM/yyyy hh:mm:ss", CultureInfo.CurrentCulture, DateTimeStyles.AllowWhiteSpaces)
    Ceci devrait mieux convenir.
    Le format précisé correspond au format en entrée de "laDateEnString". C'est bien ça. Le format de sortie, tu t'en fiches car tu manipuleras derrière un objet DateTime et pourra donc en faire à peu près ce que tu veux.

    Au passage, je viens de voir que TryParseExact existait. Je te conseillerais donc plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim laDateDuFicher as DateTime;
    DateTime.TryParseExact(laDateEnString, "dd/MM/yyyy hh:mm:ss", CultureInfo.CurrentCulture, DateTimeStyles.AllowWhiteSpaces, laDateDuFicher)
    Autre chose, j'ai un doute sur le type utilisé. Pourquoi utilises-tu Date et pas DateTime ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion string to date
    Par Fanny23 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 27/01/2012, 00h24
  2. Conversion de String en Date
    Par jojodu31 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 13/11/2008, 18h28
  3. conversion de string en date
    Par zandru dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/08/2008, 16h23
  4. conversion String en Date
    Par lisa-java dans le forum Langage
    Réponses: 3
    Dernier message: 12/01/2006, 16h14
  5. conversion String en Date (parse trop permissif)
    Par ciloulou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 13/09/2004, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo