2011-06-23 18 views
-3

Possible en double:
How can I convert a string into datetime in .NET?Convertir une chaîne datetime

J'ai une chaîne dans le format suivant "15/03/2046". comment peut convertir cette chaîne en un objet DateTime?

Mon problème est quand je fais Convert.ToDateTime ("15/03/2046") Je reçois une exception.
lorsque je convert.ToDateTime ("03/03/2046") tout fonctionne correctement.
donc je suppose que je dois spécifier le format lors de la conversion en quelque sorte ....

+0

Il suffit de regarder à la liste des questions connexes. Ou vous savez .. recherche. – Ray

Répondre

1

DateTime.Parse ou sa méthode sœur DateTime.ParseExact.

+0

DateTime.TryParse, DateTime.TryParseExact –

+1

Ou DateTime.TryParse, ce qui est toujours bon s'il y a une chance que la chaîne de votre analyse soit malformée ou nulle. – Slider345

+0

[This] (http://msdn.microsoft.com/en-us/library/5hh873ya.aspx) peut également vous être utile si votre format de date change. –

0

Utilisez DateTime.ParseExact pour spécifier le format de la chaîne d'entrée:

DateTime d = DateTime.ParseExact(
       "15/03/2046", 
       "dd/MM/YYYY", 
       CultureInfo.InvariantCulture 
      ); 
0

Plus code générique, en utilisant la méthode d'extension, et la valeur par défaut en cas si elle ne peut pas analyser la date

void Main() 
{ 
    var dt = "15/03/2046"; 

    dt.ToDateTime("fr-FR", DateTime.Now).Dump(); 
} 

public static class Extensions 
{ 
    public static DateTime ToDateTime(this string dateTime, string culture, DateTime defaultValue) 
    { 
     DateTime dt; 

     if (DateTime.TryParse(dateTime, System.Globalization.CultureInfo.CreateSpecificCulture(culture), System.Globalization.DateTimeStyles.None, out dt)) 
      return dt; 
     else 
      return defaultValue; 
    } 
}