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 :

[C#] Comment convertir string en DateTime ?


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 31
    Par défaut [C#] Comment convertir string en DateTime ?
    Bonjour,

    Je souhaite convertire une string de type "AAMMJJ" ou "JJMMAA" en objet DateTime

    D'aprés la MSDN la méthode Parse(string) peux effectuer cette transformation mais je n'arrive pas à la faire fonctionner

    voici mon code

    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
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Globalization;
     
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string date = "041110";
                DateTime datetest = new DateTime();
                datetest = Parse(date);
            }
     
        }
    }
    merci pour vos solutions

  2. #2
    Membre éprouvé
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Par défaut
    Essaie plutôt avec ParseExact.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 31
    Par défaut
    sa ne fonctione toujour pas

    voici le message d'erreur
    Error 1 The name 'ParseExact' does not exist in the current context D:\EFB\DEV\test\ConsoleApplication1\ConsoleApplication1\Program.cs 14 24 ConsoleApplication1

  4. #4
    Membre éprouvé
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datetest = DateTime.ParseExact(date, "yyMMdd", null)

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 43
    Par défaut
    Utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     TryParse (string, out DateTime)
    ca te permet de tester si ton parse à donner un résultat.

    Es tu sûr du bon format de ta date ? (dépendant de la culture)

  6. #6
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Certainement que le format de ta date n'est pas reconnu comme valide par ton système en cours
    Il te suffit de tester ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string[] infos = DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns
    foreach (string s in infos)
     { Console.WriteLine(s);}
    Et tu auras la possibilité de constater que ton format n'y est pas.

    Comme suggéré par backseatgreg, prend le temps de paramétrer CultureInfo.CurrentCulture en fonction de la stringdate passée avant d'imposer aussi le IFormatProvider

  7. #7
    Membre éprouvé
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Par défaut
    Le problème est que pour DateTimeFormatInfo, le masque d'un format reconnu comprend un séparateur non vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "dd-MM-yy" : reconnu
    "dd45***6MM45***6yy" : reconnu (DateSeparator = "45***6")
    "ddMMyy" : non reconnu (même en définissant DateSeparator = String.Empty)
    En tout cas, c'est le résultat (ou plutôt le manque de résultat...) auquel j'étais parvenu il y a quelques mois en tentant de faire lire à mon appli le format yyyyMMdd.

    Il n'y a qu'avec DateTime.ParseExact et ses surcharges que j'y suis parvenu.

  8. #8
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Citation Envoyé par Wyatan
    Le problème est que pour DateTimeFormatInfo, le masque d'un format reconnu comprend un séparateur non vide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "dd-MM-yy" : reconnu
    "dd45***6MM45***6yy" : reconnu (DateSeparator = "45***6")
    "ddMMyy" : non reconnu (même en définissant DateSeparator = String.Empty)
    En tout cas, c'est le résultat (ou plutôt le manque de résultat...) auquel j'étais parvenu il y a quelques mois en tentant de faire lire à mon appli le format yyyyMMdd.

    Il n'y a qu'avec DateTime.ParseExact et ses surcharges que j'y suis parvenu.
    +1 reformulé de façon plus pragmatique

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Par défaut
    merci à Wyatan..
    même 2 ans après, cela sert toujours à d'autres, avec un gain de temps non négligeable

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2002
    Messages : 15
    Par défaut
    tu ne crois pas si bien dire ... 3 ans après!!

  11. #11
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 19
    Par défaut re
    Euh ben oui même 3 ans après ... Merci

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Et même 4 ans après

  13. #13
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 36
    Par défaut
    Oh allez, je ne peux pas m'en empécher :

    Même cinq ans aprés

  14. #14
    Membre éclairé
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    311
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 311
    Par défaut
    +1

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Par défaut
    et de 6 ans après merci

  16. #16
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut
    je dirais même plus 7 ans après !! Merci

  17. #17
    Membre confirmé
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Par défaut
    Encore aujourd'hui... ce sujet sauve une vie ^^

  18. #18
    Membre éclairé Avatar de eldran64
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 344
    Par défaut
    Je confirme, ce sujet devrait classé d'utilité publique!

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

Discussions similaires

  1. [vb.net] Comment convertir string en DateTime ?
    Par aiglelibre dans le forum Développement Windows
    Réponses: 2
    Dernier message: 05/06/2012, 08h39
  2. Comment convertir 'string[]' en 'DataGridViewRow' ?
    Par Chavadam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/06/2010, 11h02
  3. [C# 2] Comment convertir string > byte[] ?
    Par Royd938 dans le forum C#
    Réponses: 2
    Dernier message: 20/06/2006, 10h39
  4. Réponses: 6
    Dernier message: 16/01/2006, 20h33
  5. Réponses: 6
    Dernier message: 14/02/2004, 14h01

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