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 :

Parsexact de DateTime avec millisecond


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Parsexact de DateTime avec millisecond
    Bonjour


    Je dois traiter des string DateTime avec des millisecondes
    Malheureusement le nombre de milliseconde est variable

    2009-08-05T09:41:52.982
    2009-08-05T09:42:54.0
    2009-08-05T12:31:57.50


    Alors j'ai fais une methode un peu bateau dont je ne suis pas tres fier

    Je remplace aussi le T par blanc car dans ce P* de fichier j'ai parfois un T entre la date et le time mais parfois un blanc

    Si quelq'un trouve mieux je suis preneur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
       // *******************************************************************************
        private DateTime GetTime(string navTrace)
        {
          bool ok;
          DateTime dt = new DateTime();
     
          String dx = navTrace.Replace('T', ' ');
          ok=DateTime.TryParseExact(dx, "yyyy-MM-dd HH:mm:ss.f", null, System.Globalization.DateTimeStyles.AssumeUniversal, out dt);
          if (!ok)
          {
            ok = DateTime.TryParseExact(dx, "yyyy-MM-dd HH:mm:ss.ff", null, System.Globalization.DateTimeStyles.AssumeUniversal, out dt);
            if (!ok)
            {
              ok = DateTime.TryParseExact(dx, "yyyy-MM-dd HH:mm:ss.fff", null, System.Globalization.DateTimeStyles.AssumeUniversal, out dt);
              if (!ok)
              {
                bool Zut = true;
              }
            }
          }
          return dt;
        }

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    En indiquant les différents formats possibles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    string[] formats = { "yyyy-MM-dd HH:mm:ss.f", 
                         "yyyy-MM-dd HH:mm:ss.ff", 
                         "yyyy-MM-dd HH:mm:ss.fff",
                         "yyyy-MM-ddTHH:mm:ss.f", 
                         "yyyy-MM-ddTHH:mm:ss.ff", 
                         "yyyy-MM-ddTHH:mm:ss.fff" };
    DateTime dt;
    DateTime.TryParseExact("2009-08-05T09:41:52.98", formats, null, System.Globalization.DateTimeStyles.AssumeUniversal, out dt);
    Au passage, pas besoin de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime dt = new DateTime();
    car la variable sera initialisée par la méthode TryParseExact, puisqu'elle est passée en out.

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut Stormimonn

    Dommage que je n'ai pas parié que c'est toi qui allait répondre sur ce coup la

    Bravo pour ta maitrise du sujet, je n'avais jamais fais attention que l'on pouvait passer un Array en parametre de format !

    Et pour le new DateTime() bravo aussi pour ta vigileance !

    Un automatisme d'ecriture qui trainait là et que je n'avais pas remarqué non plus !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/02/2015, 09h20
  2. [Format] date avec millisecondes
    Par kgb1917 dans le forum VBA Access
    Réponses: 6
    Dernier message: 26/03/2007, 15h00
  3. time() mais avec millisecondes?
    Par baleiney dans le forum Langage
    Réponses: 2
    Dernier message: 04/02/2007, 13h33
  4. découper un datetime avec la fonction split
    Par moook dans le forum Langage
    Réponses: 7
    Dernier message: 03/10/2006, 10h52
  5. pb format datetime avec mysql
    Par ms91fr dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/12/2004, 14h12

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