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

C# Discussion :

Parsing d'une date dans une format custom


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut Parsing d'une date dans une format custom
    Bonjour,

    Je reçois des fichiers xml de différentes sources de données que je parse afin de les comparer à un fichier xml de référence. Jusqu'à la aucun soucis, j'ai crée deux comparateurs : un basique et un avancé. Le comparateur avancé regarde le type de chaîne (Date, nombre, chaîne classique) et vérifie que les deux concordent bien.

    Récemment, je me suis retrouvé avec la chaîne suivante : "23/09/2009 14:34:00". Le test déjà en place ne la reconnait pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(DateTime.TryParse(string, CultureInfo.Invariant, DateTimeStyles.None, out date))
    {
    //Blabla
    }
    J'ai donc parcouru le net et j'ai trouvé DateTime.TryParseExact() à qui l'on pourrait apparament préciser le type de la chaîne en entrée. J'ai parcouru la documentation qui est assez évasive à ce sujet et j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(DateTime.TryParseExact(string, "dd/MM/yyyy HH:mm:ss", CultureInfo.Invariant, DateTimeStyles.None, out date))
    {
    //Blabla
    }
    J'ai bien regardé en mode debug, a aucun moment on ne rentre dans mon Blabla.

    Est ce que j'ai fait une erreur ou y a t il une autre solution ?

    Merci beaucoup,

  2. #2
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut
    Bonjour Skamy,

    J'ai essayé ton code, effectivement ça ne marche pas.

    J'ai identifier le problème, apparement ç viendrant du DateTimeStyles.

    en utilisant AdjustToUTC, chez moi ça fonctionne parfaitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                DateTime d;
                if (DateTime.TryParseExact("23/09/2009 14:34:00", "dd/MM/yyyy HH:mm:ss", null, System.Globalization.DateTimeStyles.AdjustToUniversal, out d))
                    MessageBox.Show(d.ToString());
                else
                    MessageBox.Show("Oups");
    Bonne journée

  3. #3
    Membre habitué
    Inscrit en
    Mai 2010
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 13
    Par défaut
    Salut,

    Merci pour ta réponse. Malheureusement, chez moi cela ne fonctionne pas, même en utilisant le AdjustToUniversal


    EDIT:

    Salut,

    Contrairement à ce que j'ai dis, ça marche niquel ! Même pas besoin de TryParseExact(), TryParse fonctionne si je remplace le None par AdjustToUniversal. Je comprends ni pourquoi, ni comment (C'est la dure loi de l'informatique ) mais ça marche !

    Merci beaucoup !

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut
    Tant meux si ça marche, mais je pense que ça ne marchais pas à cause du format de l'heure, en None il doit essayer avec un format américain par défaut, c'est à dire les AM et PM, et donc il ne peut pas comprendre 14h car ça n'existe pas pour lui.

    Du moins c'est ce que j'en ai déduis, sans forcément trop chercher.

    Bonne journée et de rien, on est là pour ça

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

Discussions similaires

  1. [MySQL] insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 16/08/2014, 11h10
  2. insérer une date dans une table dans un format compréhensible
    Par laurentSc dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2014, 16h31
  3. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Inserer une date d'une table dans une autre table
    Par petitetre dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/04/2007, 20h16

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