2010-10-05 10 views
1

J'ai le code suivant.Une autre question DateTime.ParseExact

using System; 
using System.Globalization; 

    class testCompile 
    { 
     static void Main(string[] args) 
     { 
      CultureInfo provider = CultureInfo.InvariantCulture; 
      string format = "mm/d/yyyy"; 
      string strInput = "11/5/2010"; 
      string strOutput = DateTime.ParseExact(strInput, format, provider).ToString(); 
      Console.WriteLine("string Looks Like : {0}", strOutput); 
     } 
    } 

1) Si je tente de définir le format de « mm/jj/aaaa », le code ci-dessus renvoie une erreur lors de l'exécution.

2) Je reçois une sortie du 1/5/2010 12:11:00 AM pour le code ci-dessus.

D'où vient exactement le 12:00:00 AM?

Comment le jour de Guy Fawkes est-il passé au 5 janvier?

Quelqu'un pourrait-il expliquer ce qui se passe?

+0

Assurez-vous de configurer correctement les blocs Try/Catch si vous utilisez ParseExact. Sinon, vous pouvez utiliser TryParse/TryParseExact à la place. – Crag

+0

Merci pour les contributions de tous. J'ai changé mon code pour le faire ressembler à ceci. ** static void Main (arguments [] []) { Fournisseur CultureInfo = CultureInfo.InvariantCulture; chaîne format = "M/j/aaaa"; chaîne strInput = "11/15/2010"; chaîne strOutput = DateTime.ParseExact (strInput, format, fournisseur) .ToShortDateString(); Console.WriteLine ("chaîne ressemble: {0}", strOutput); } – abhi

+1

@Crag, Merci pour votre commentaire. J'ai cela dans mon code original. Ceci est juste un échantillon que j'ai créé dans le but d'illustrer mon problème. – abhi

Répondre

4

1) Comme vous n'avez pas spécifié d'heure, elle utilise la valeur par défaut, 12:00:00 AM.

2) Vous devez utiliser "MM" pour spécifier le mois dans votre chaîne de format, plutôt que "mm" (minutes). Voir Custom Date and Time Format Strings pour tous les détails que vous pouvez gérer.

+1

format de chaîne = "M/j/aaaa"; va travailler pour toutes les situations. – abhi

4

mm signifie minutes; MM signifie mois.