2013-05-13 4 views
0

Je suis en train de convertir ma chaîne valeur formated type de date avec le format jj/mm/aaaa. Il fonctionne bien mais quand je tape fromdate (jj/MM/aaaa) dans textbox son bien et todate (jj/MM/aaaa) dans la zone de texte alors il donne une erreur que la chaîne n'a pas été reconnue comme datetime.What est exactement le problème Je ne sais pas. même code fonctionne sur une autre application son fonctionnement bien, mais dans mon application, il montre Erreur.valide DateTime (erreur indique la chaîne n'a pas été reconnu)

Ci-dessous j'ai utilisé tableau pour le format requis et divisé également utilisé.

string fromdate = punchin.ToString(); 
string[] arrfromdate = fromdate.Split('/'); 
fromdate = arrfromdate[1].ToString() + "/" + arrfromdate[0].ToString() + "/" + arrfromdate[2].ToString(); 
DateTime d1 = DateTime.Parse(fromdate.ToString()); 
+0

ce que u obtiennent dans la chaîne fromdate –

+0

Que faites-vous dans la troisième ligne? poster un exemple de chaîne contenue dans 'punchin' – Habib

+1

Je suppose que c'est essayer d'analyser MM/jj/aaaa à la place, et votre date actuelle est' 13/01/2000' ou quelque chose. Vous pouvez utiliser 'DateTime.ParseExact' pour appliquer votre format. –

Répondre

0

Je suis 13/05/2013 12:21:35 dans la chaîne fromdate

utilisation DateTime.TryParseExac t, vous ne pas diviser votre chaîne basée sur / et ensuite obtenir trois premiers éléments du tableau à la place, vous pouvez simplement faire:

DateTime dt; 
if (DateTime.TryParseExact("5/13/2013 12:21:35 PM", 
            "M/d/yyyy hh:mm:ss tt", 
            CultureInfo.InvariantCulture, 
            DateTimeStyles.None, 
            out dt)) 
{ 
    //date is fine 
} 

L'utilisation simple et unique dM comme Il peut accueillir un seul chiffre ainsi que deux chiffres jour/mois. Vous pouvez simplement passer punchin comme paramètre de chaîne. L'appel ToString sur les types de chaînes est redondant.

+0

Il indique l'erreur comme ce nom « CultureInfo »n'existe pas dans le contexte actuel . – Vijaya

+0

@ user2131469, remplacez-le par 'System.Globalization.CultureInfo.InvariantCulture' ou faites un clic droit dessus et sélectionnez' Resolve' – Habib

2

essai avec DateTime.TryParseExact comme ci-dessous

DateTime date; 
if (DateTime.TryParseExact(inputText, "MM/dd/yyyy", 
          CultureInfo.InvariantCulture, 
          DateTimeStyles.None, 
          out date)) 
{ 
    // Success 
} 

si vous connaissez le format de date et heure d'entrée vous n'avez pas besoin de faire une manipulation de chaînes. Mais vous devez donner bonne Date and Time Format String

0

Essayez:

DateTime.ParseExact(fromdate, "MM/dd/yy", CultureInfo.InvariantCulture) 

Il est évident que vous pouvez reformater ce qui précède, et utiliser différents fournisseurs en créant une instance de CultureInfo liée à la chaîne que vous analysez et vous pouvez modifier la chaîne de format pour refléter cette culture ou d'accueillir plus de pièces de date

+0

Merci Segev -CJ- Shmueli. Voici ce qui est le CultureInfo, il indique l'erreur comme ce nom « CultureInfo » n'existe pas dans le contexte actuel – Vijaya

+0

Ajouter référence à 'System.Globalization' – Damith

Questions connexes