.NET DateTime.Analyser
Lors de l'utilisation de la méthode d'analyse sur la classe DateTime j'obtiens une exception levée:
Chaîne n'a pas été reconnu comme un DateTime valide.
- La chaîne se lit comme
"26/10/2009 8:47:39 AM"
lors de la sortie. - Cette chaîne est obtenue à partir d'un groupe sur un match à partir d'une expression rationnelle.
- Aucun des chaînes obtenues à partir de ce match de groupe d'analyse de type datetime. (WTF?)
D'autres exemples de chaînes:
26/10/2009 8:47:39 AM 26/10/2009 8:00:41 AM 26/10/2009 7:48:35 AM
La chose étrange est, je suis sûr qu'il a travaillé avant >__<
Est vos paramètres régionaux de windows-il correctement défini?
Ouai mais la demande a été exécuté comme un service, et le profil de l'utilisateur qui exécute le service n'a pas. 🙂
Ouai mais la demande a été exécuté comme un service, et le profil de l'utilisateur qui exécute le service n'a pas. 🙂
OriginalL'auteur Matthew | 2009-12-08
Vous devez vous connecter pour publier un commentaire.
Parse
prend paramètres régionaux (culture de thread en cours) en compte. Donc, je ne l'utiliseraisParseExact
et spécifier le format correct explicitement avec un invariant de la culture (ou de la culture dont vous avez besoin, par exemple.en-US
, AM/PM).OriginalL'auteur Lucero
L'analyse de chaînes en
DateTime
objet est presque toujours une douleur. Si vous savez pour certain qu'ils auront toujours le format que vos exemples ne, cela devrait fonctionner:Bien que j'allais ajouter quelques informations sur les paramètres régionaux (la mondialisation) qui affectent la date de l'analyse.
donc moi C'est la douleur de la partie. 😉 Non, sérieusement, c'est un domaine complexe qui est un problème commun à la source. J'ai écrit une sorte de lengty réponse sur le sujet il y a un moment ici: stackoverflow.com/questions/1437454/date-format-problem
im en utilisant cette solution, les chaînes d'entrée est correctement formaté, mais ma variable datetime est mise à 1/1/0001 12:00:00 AM, im en utilisant .Net 4.5, avez-vous une idée de mec?
quel est votre chaîne d'entrée et le format de la chaîne?
OriginalL'auteur Fredrik Mörk
Vous êtes probablement à l'aide de la mauvaise culture. Le mois ne peut pas être 26, il n'est donc pas un de NOUS timestamp. Cela fonctionne bien:
OriginalL'auteur Mark Byers
A la culure changé sur la machine? 26/10/2009 est un bon royaume-UNI date, mais une mauvaise US date (par exemple)
OriginalL'auteur Pharabus
Soit appeler DateTime.Parse() avec la culture comme un paramètre ou d'un appel de type DateTime.ParseExact() avec la date, le format exact de la date d'analyser, et de la culture:
DateTime.ParseExact()
OriginalL'auteur Justin Niessner
J' @Lucero,
Parse
utilisations actuelles du fil info culture etc. Voir aussi la direction opposée: unToString
question dans ce contexte.OriginalL'auteur Ron Klein