2011-10-27 5 views
1

J'ai une chaîne qui doit être convertie et validée en DateTime. La chaîne est dans le format suivant « JJ.MM.AA » Je suis en train de le convertir en DateTime en utilisant les éléments suivantsFormats DateTime C#

string format = "dd.mm.yy"; 
date = DateTime.ParseExact(current.Substring(aiRule.AiLength), format, 
              CultureInfo.InvariantCulture); 

mais malheureusement cela ne fonctionne pas. La question est de savoir comment convertir une chaîne au format 'jj.mm.aa' en un DateTime? Merci

+0

pouvez-vous montrer votre chaîne d'entrée et le résultat de: current.Substring (aiRule.AiLength)? –

+0

En règle générale, dire "X échoue" n'aide pas les gens qui vous aident. Essayez d'être spécifique - donnez des exemples d'entrées, de sorties attendues, de sorties réelles ou de messages d'erreur. –

Répondre

11

mm signifie "minutes". Je suppose que vous voulez "dd.MM.yy". Voir MSDN pour plus d'informations sur custom date and time format strings.

(en particulier, lisez la partie de la "yy" specifier et la façon dont il choisit le siècle à utiliser. Si vous pouvez changer l'entrée à utiliser quatre chiffres de l'année, qui pourrait vous faire économiser quelques problèmes ...)

0

Je vais dire quelque chose "hérétique". Si dd.MM.yy (avec 2 ou 4 yy) est le format de votre culture locale, alors vous pouvez laisser le DateTime.Parse (et non ParseExact!) Faire son travail sans le mettre à CultureInfo.InvariantCulture, ou en le mettant dans votre culture locale comme new CultureInfo("it-IT").

0

le format de chaîne doit être comme ça ....

string Format = "dd.MM.yy" 


mm is for showing minutes 

MM is for showing months.. 

je l'espère vous aide ...

0

Comme les messages précédents a déjà souligné, mm signifie minutes et MM signifie mois . J'ai couru cet extrait de test et cela fonctionne comme prévu:

string format = "dd.MM.yy"; 
string date = "27.10.11"; 
DateTime result; 
result = DateTime.ParseExact(date, format, CultureInfo.InvariantCulture);