2009-06-12 7 views
3

Question rapide: J'essaie d'analyser les dates dans le format suivant en leur type de données DateTime équivalent, mais pour une raison quelconque, il échoue.DateTime.ParseExact - Echec

Le format de la chaîne est: 28/mai/2009: 17: 43: 04 +0000

Ou: jj/mmmm/aaaa hh: mm: ss zz00

Voici la code J'utilise:

Dim provider As New CultureInfo("en-US") 
Dim d As DateTime = DateTime.ParseExact(value, "dd/MMM/yyyy:hh:mm:ss zz00", provider) 

Mais, cela produit une exception FormatException.

FYI: J'ai également essayé d'utiliser InvariantCulture pour le paramètre fournisseur de ParseExact, en vain.

Tous les pointeurs seraient grandement appréciés; c'est vendredi et mon cerveau s'est endormi! :)

Merci!

Répondre

15

Vous voulez "HH" (format 24 heures) plutôt que "hh" (format 12 heures) dans votre chaîne de format:

using System; 
using System.Globalization; 

public class Test 
{ 
    static void Main() 
    { 
     var provider = new CultureInfo("en-US"); 
     // Doesn't throw 
     var d = DateTime.ParseExact("28/May/2009:17:43:04 +0000", 
            "dd/MMM/yyyy:HH:mm:ss zz00", 
            provider); 
    }  
} 
+0

Arrrgh! Apparemment, je suis allé FormatBlind. :) Merci d'avoir souligné mon erreur ridiculement évidente et de restaurer mon ancienne, heureuse, vendredi sentiment! – Richard

8

hh est des heures dans l'horloge de 12 heures. Vous voulez HH.

Questions connexes