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 :

Problème de DateTime.ParseExact


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    771
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 771
    Par défaut Problème de DateTime.ParseExact
    Bonjour,

    je ne me suis jamais autant battu avec des DateTime qu'aujourd'hui...

    Voici mon problème de base : je dois convertir une chaîne de caractère de taille fixe de format anglais : "Wed Oct 15 00:00:00 UTC+0200 2008" (ex.) en DateTime, dans lequel je n'ai besoin que du jour, du mois et de l'année.

    Pour cela, j'ai extrait de la chaîne le mois : "Oct", le jour "15" et l'année "2008".

    J'ai ensuite écrit ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IFormatProvider culture = new CultureInfo("en-US", false);
    DateTime dt = DateTime.ParseExact("15 Oct 2008", "dd MMM YYYY", culture);
    qui ne veut pas fonctionner, exception : La chaîne n'a pas été reconnue en tant que DateTime valide.

    Je me suis dit bon, c'est à cause du mois en 3 lettres, essayons via le débugueur ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime.ParseExact("05 05 2008","dd MM YYYY",new CultureInfo("en-US"))
    Même sanction.

    J'ai bien évidemment essayer pleins d'autres choses, entre autre la Culture Invariant, et la culture française par ex.

    Du coup je ne comprends plus rien. Des idées?

    Merci d'avance.

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IFormatProvider culture = new CultureInfo("en-US", false);
    DateTime dt = DateTime.ParseExact("15 Oct 2008", "dd MMM yyyy", culture);
    Attention à bien respecter les formats de date

  3. #3
    Membre éclairé

    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2004
    Messages
    771
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2004
    Messages : 771
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IFormatProvider culture = new CultureInfo("en-US", false);
    DateTime dt = DateTime.ParseExact("15 Oct 2008", "dd MMM yyyy", culture);
    Attention à bien respecter les formats de date
    Merci. C'était bien ca... J'ai tellement essayé de cas différents que j'ai du en louper un.

  4. #4
    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
    Tiens je tombe par hazard sur le sujet

    j'ai des dates au format yyyy-MM-dd

    Et il semble que meme le parseexact ne les digere pas
    Je fais donc un String.Replace de "-" par "/" et c'est OK mais ca me trouble un peu, je croyais que le parseexact permettait de traiter des syntaxe un peu différentes

    Voici ce que j'avais essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime.ParseExact("2010-07-22", "yyyy-MM-dd", CultureInfo.InvariantCulture);

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Ca fonctionne pourtant parfaitement.

    Que veux tu dire quand tu écrits "il ne digère pas" ? il t'envoie une exception ?

  6. #6
    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

    Merci de ton aide

    Oui j'avais une exception genre "invalid date format" !
    Ensuite j'ai changé pour ce format ci et ca passait correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime.ParseExact("2010/07/22", "yyyy/MM/-dd", CultureInfo.InvariantCulture);
    Je n'ai pas cherché a comprendre tres longtemps car ca devait tourner d'urgence !

    Mais ca m'a quand meme laissé perplexe

    D'ailleurs a la base j'avais aussi essayé ceci qui correspondait exactement au format d'entrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateTime.ParseExact("#Date=2010-07-22", "#Date=yyyy-MM-dd", CultureInfo.InvariantCulture);
    A l'occasion je réesaye

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

Discussions similaires

  1. Problème de dateTime
    Par Mr_Coinche dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/04/2011, 11h59
  2. Problème champ datetime
    Par dubitoph dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/08/2009, 09h52
  3. Problème de datetimes!
    Par Bettylolz dans le forum SAS Base
    Réponses: 4
    Dernier message: 27/03/2008, 20h48
  4. [sql-server]problème type datetime
    Par -Neo- dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/01/2008, 09h52
  5. problême avec datetime
    Par Xanime dans le forum Services Web
    Réponses: 1
    Dernier message: 13/06/2007, 16h24

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