2011-06-09 2 views
2

Je convertis la chaîne de format de date uk au format US pour l'enregistrer dans la base de données, mais elle me renvoie l'erreur "La chaîne n'a pas été reconnue comme DateTime valide".La chaîne n'a pas été reconnue comme étant une DateTime valide

string dateString = "13/06/2011"; 
DateTime dt = DateTime.Parse(dateString); 

J'ai également essayé ceci mais la même exception.

DateTime aa = DateTime.ParseExact(dateString, "MM/dd/yyyy", new System.Globalization.CultureInfo("en-GB")); 

S'il vous plaît laissez-moi savoir comment puis-je convertir la date au format uk en chaîne au format de date de nous.

Merci.

+7

Parce que 13 mois n'existe pas? – Dykam

Répondre

7

Vous avez spécifié le mauvais format. Il devrait être dd/MM/yyyy:

var dateString = "13/06/2011"; 
var aa = DateTime.ParseExact(dateString, "dd/MM/yyyy", CultureInfo.CurrentCulture); 
+0

Cela fonctionne pour moi mais après conversion quand je l'enregistre et le convertis en UK il change les mois en jours et les jours en mois. dans var dateString = "13/06/2011"; il est 13 juin 2011 après avoir enregistré et récupéré il montre 13/06/2011 mais il devrait montrer 13/06/2011. – Sami

+0

J'ai résolu ce
var date = dateValue.ToString ("jj/MM/aaaa"); – Sami

-3

essayer cette

DateTime dt = DateTime.Parse(dtString, 
System.Threading.Tread.CurrentThread.CurrentCultur e.DateTimeFormat); 
+0

L'utilisation de la culture du thread actuel n'aide pas à analyser une valeur au format en-UK lorsque la culture actuelle n'est pas en-UK. – dtb

+0

Vous avez raison, mon point était juste pour lui montrer qu'il devrait utiliser le CurrentThread.CurrentCulture.DateTimeFormat, pas seulement le CurrentThread.CurrentCulture,;) –

3

DateTime.Parse avec une culture travaille en-GB fin:

string dateString = "13/06/2011"; 

DateTime aa = DateTime.Parse(dateString, new CultureInfo("en-GB")); 
// aa.Day == 13 
// aa.Month == 6 
// aa.Year == 2011 

string result = aa.ToString("d", new CultureInfo("en-US")); 
// result == "6/13/2011" 
+0

Cela fonctionne pour moi mais après la conversion quand je l'enregistre et le convertis au Royaume-Uni cela change les mois en jours et les jours en mois. dans var dateString = "13/06/2011"; il est 13 juin 2011 après avoir enregistré et récupéré il montre 13/06/2011 mais il devrait montrer 13/06/2011. – Sami

+0

J'ai résolu ce
var date = dateValue.ToString ("jj/MM/aaaa"); – Sami

Questions connexes