La conversion d'une Chaîne de type DateTime
Comment convertir une chaîne telle que 2009-05-08 14:40:52,531
dans un DateTime
?
- Pourquoi une réponse de
@CMS
pas marqué comme réponse? Il y a peut être une raison-je suis curieux. - Comment convertir le jj/mm/aaaa à jj/mm/aaaa?
- L'utilisateur a supprimé son compte, ou qui ont été interdites, ne peux pas cliquer sur celle-ci, ni de voir la réputation et de médailles. Malheureusement tout ce que nous pouvons faire est de lui donner quelques pouces vers le haut.
- Comment convertir une chaîne de caractères "aaaammjj" datetime?
Vous devez vous connecter pour publier un commentaire.
Puisque vous êtes la manipulation de 24 heures et vous avez une virgule séparant la fraction de secondes, je vous recommande de spécifier un format personnalisé:
Vous avez deux options pour cela.
DateTime.Parse()
etDateTime.ParseExact()
.La première est très indulgent en termes de syntaxe et de l'analyse des dates dans de nombreux formats différents. Il est bon pour la saisie de l'utilisateur qui peut venir en différents formats.
ParseExact vous permettra de spécifier le format exact de votre chaîne de date à utiliser pour l'analyse. Il est bon d'utiliser cette option que si votre chaîne est toujours dans le même format. De cette façon, vous pouvez facilement détecter tout écart par rapport aux données attendues.
Vous pouvez analyser la saisie de l'utilisateur comme ceci:
Si vous avez un format spécifique pour la chaîne, vous devez utiliser l'autre méthode:
"d"
signifie la date courte (voir MSDN pour plus d'info) etnull
spécifie que la culture actuelle doit être utilisé pour l'analyse de la chaîne.essayer cette
une meilleure façon serait celui-ci:
Personne ne semble avoir mis en œuvre une méthode d'extension. Avec l'aide de @CMS réponse:
De travail et l'amélioration de la totalité du code source de l'exemple est ici: Gist Lien
utiliser DateTime.Parse(string)
Essayer de le ci-dessous, où strDate est votre date MM/jj/aaaa format
Convertir des.ToDateTime ou DateTime.Analyser
J'ai essayé de différentes façons. Ce qui a fonctionné pour moi, était-ce:
data
été pour moi des moments comme cela 9/24/2017 9:31:34 AMVous pouvez également utiliser DateTime.TryParseExact() comme ci-dessous si vous n'êtes pas sûr de la valeur d'entrée.
DateTime.Analyser
Syntaxe:
Exemple:
Il est également utile de rappeler DateTime est un objet qui est stockée en tant que nombre à l'interne dans le cadre, le Format s'applique uniquement lorsque vous le convertir en chaînes de caractères.
Analyse de la conversion d'une chaîne à l'intérieur du type de numéro.
Mise en forme de la conversion interne valeur numérique à une lisible
chaîne de caractères.
J'ai récemment eu un problème lorsque j'essaye de convertir un DateTime pour passer à Linq ce que je n'avais pas réalisé à l'époque était le format n'est pas pertinent lors du passage de DateTime pour une Requête Linq.
Plein DateTime Documentation
Mettre ce code dans une classe statique
> public static class ClassName{ }
De cette façon, vous pouvez utiliser
Différentes cultures dans le monde d'écrire la date de chaînes de différentes manières. Par exemple, aux états-unis 01/20/2008 est le 20 janvier 2008. En France, cela va jeter un InvalidFormatException. C'est parce que la France se lit la date et l'heure comme le Jour/Mois/Année, et dans le NOUS, il est Mois/Jour/Année.
Par conséquent, une chaîne comme 20/01/2008 va analyser au 20 janvier 2008 en France, et de jeter un InvalidFormatException aux états-unis.
Pour déterminer vos paramètres de culture actuels, vous pouvez utiliser le Système.De la mondialisation.CultureInfo.CurrentCulture.