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
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 31
    Points : 34
    Points
    34
    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 régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Essaie plutôt avec ParseExact.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 31
    Points : 34
    Points
    34
    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 régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    datetest = DateTime.ParseExact(date, "yyMMdd", null)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 43
    Points : 37
    Points
    37
    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 éminent
    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
    Points : 7 879
    Points
    7 879
    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 régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    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 éminent
    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
    Points : 7 879
    Points
    7 879
    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 régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    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 à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

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

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

  12. #12
    Membre régulier
    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
    Points : 98
    Points
    98
    Par défaut
    Et même 4 ans après

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

    Même cinq ans aprés

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

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

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

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

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

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

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

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

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

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

  18. #18
    Membre extrêmement actif Avatar de eldran64
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2008
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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 : 341
    Points : 1 515
    Points
    1 515
    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