Détails
Conversion de la chaîne formatée dd/mm/yyyy en datetime
Je suis novice en DotNet et C#. Je veux convertir une chaîne de caractères au format mm/dd/yyyy
en objet DateTime
. J'ai essayé la fonction parse comme ci-dessous mais une erreur d'exécution s'est produite.
DateTime dt=DateTime.Parse("24/01/2013");
Une idée sur la façon dont je peux le convertir en datetime ?
95
3
Vous devez utiliser [
DateTime.ParseExact
][1] avec le format"dd/MM/yyyy"
.Il est plus sûr d'utiliser le format
d/M/yyyy
, car il permet de gérer les jours/mois à un et deux chiffres. Mais cela dépend vraiment si vous attendez des valeurs à un ou deux chiffres.Votre format de date "jour/mois/année" pourrait être un format de date acceptable pour certaines cultures. Par exemple, pour la culture canadienne
en-CA
,DateTime.Parse
fonctionnerait comme suit :Ou
Les deux lignes ci-dessus fonctionneraient parce que le format de la chaîne est acceptable pour la culture
en-CA
. Comme vous ne fournissez aucune culture à votre appelDateTime.Parse
, votre culture actuelle est utilisée pour l'analyse syntaxique qui ne supporte pas le format de la date. Pour en savoir plus, consultez [DateTime.Parse][2].Une autre méthode d'analyse syntaxique consiste à utiliser [
DateTime.TryParseExact
][3].Le groupe de méthodes
TryParse
du cadre .Net ne lève pas d'exception en cas de valeurs invalides, mais renvoie une valeurbool
indiquant le succès ou l'échec de l'analyse.**Notez que j'ai utilisé un seul
d
et un seulM
pour le jour et le mois respectivement. Un seuld
etM
fonctionne pour le jour et le mois à un ou deux chiffres. Ainsi, pour le formatd/M/yyyy
, les valeurs valides pourraient être :Pour une lecture plus approfondie, vous devriez consulter : [Chaînes de format personnalisées pour la date et l'heure] [4]
[1] : http://msdn.microsoft.com/en-us/library/system.datetime.parseexact.aspx [2] : http://msdn.microsoft.com/en-us/library/system.datetime.parse(v=vs.110).aspx [3] : http://msdn.microsoft.com/en-us/library/system.datetime.tryparse(v=vs.110).aspx [4] : http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
utiliser "DateTime.ParseExact".
null
utilisera la culture courante, ce qui est quelque peu dangereux. Essayez de fournir une culture spécifiqueVous pouvez utiliser le format
"dd/MM/yyyy"
pour l'utiliser dans [DateTime.ParseExact
][1].Voici un [
DEMO
][2].Pour plus d'informations, consultez [
Custom Date and Time Format Strings
][3].[1] : http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx [2] : http://ideone.com/UjZzVB [3] : http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx