2009-10-20 13 views
2

J'ai la date suivante en tant que chaîne "091020". J'utilise SubSonic comme DAL. Quand je faisConversion de chaîne en type Date non valide erreur

myObject.DateColumn = "091020" 

Je reçois l'erreur « Conversion de type String à Type Date non valide »

J'ai essayé de jouer avec le IFormatProvider et CultureInfo mais ne peut pas sembler obtenir incursion de l'erreur.

Qu'est-ce qui me manque?

Répondre

5

Essayez

myObject.DateColumn = DateTime.ParseExact("091020", "yyMMdd", null) 

DateTime.ParseExact vous permet de spécifier exactement comment analyser la date à laquelle il est pas tout à fait évident.

+0

J'ai essayé cela plus tôt, mais j'ai obtenu l'erreur Impossible de convertir un objet de type 'System.String' en type 'System.IFormatProvider –

+0

J'utilisais DateTime.Parse –

+0

Si j'ai l'heure comme "1422" puis-je utiliser DateTime.ParseExact pour stocker l'heure dans un objet System.Date? –

2

.Net ne peut pas analyser cela en une date valide. Jetez dans un nouveau projet et vérifiez que:

string sDate = "091120"; 
DateTime dt = DateTime.MinValue; 

if (DateTime.TryParse(sDate, out dt)) 
    MessageBox.Show(dt.ToShortDateString()); 
else 
    MessageBox.Show("Nope"); 

Donc, si vous savez que toutes les dates sont YYMMDD, puis utilisez ceci:

DateTime.ParseExact("091120", "yyMMdd", null) 

Comment obtenez-vous ces dates? Sont-ils garantis à 6 chiffres au format yyMMdd?