J'essaie de déboguer et il est indiqué que "String est / n'a pas été reconnu comme une valeur de DateTime valide", j'ai trouvé environ 20 postes à ce sujet sur ce site Web et essayé chacun de TH OSE, aucun n'a fait aucune différence ou il a donné plus Erreur "0 n'est pas une valeur valide". Qu'est-ce que je fais mal? Parce que cela ne montre aucune erreur mais cesse de déboguer à chaque fois et donne l'erreur.
dtoday2 et cexpiration Je souhaite convertir d'une chaîne en une valeur DateTime, puis la comparez dans la ligne finale du code. P>
Remarque, la cexpiration provient d'un Textbox9.text qui est le flux de fichier droit ReadallText à partir d'un fichier enregistré, de sorte que je souhaite que le fichier sauvegardé sur DateTime. P> je m'attends Pour analyser textbox9.text comme par exemple 2019/01/17 01:01 mais je ne sais pas parce que je n'ai même pas eu d'expérience professionnelle avec elle, donc je ne sais pas avec certitude. P>
3 Réponses :
Vous devez réduire votre problème entre l'entrée qui fonctionne et qui ne le fait pas. A titre d'exemple, voici une entrée qui fonctionne bien:
var dt = DateTime.ParseExact("2019/01/17 01:01", "yyyy/MM/dd HH:mm", System.Globalization.CultureInfo.InvariantCulture); Console.WriteLine("{0}", dt);
Votre problème est exactement comme nous le pensions, votre date de date n'est pas dans le format Alors, comment pouvons-nous le réparer? Nous pouvons utiliser le "aaayy / mm / jj hh: mm" code>, il est strud>
"AAAA / MM / DD HH: MM \ R \ N" CODE>
String.trim code>
méthode, qui supprimera tous les retours d'espace blanc ou de chariot formant la chaîne p>
Vous vous ouvrez à d'autres erreurs d'analyse en convertissant la date d'aujourd'hui à une chaîne, puis essayez de le convertir à nouveau à une date d'heure. En effet, l'appelant Tostring () entraînera différentes sorties dans différentes régions et / ou cultures. Au lieu de cela, comparez simplement DateTime.Today directement:
// this includes the Trim() suggested by the others string cheatExpiration = System.IO.File.ReadAllText(@"C:\xWQcixf07xES5yf5V5A6\UKI9nRuJgZA611zQCyIq.txt").Trim(); DateTime cExpiration = DateTime.ParseExact(cheatExpiration, "yyyy/MM/dd HH:mm", System.Globalization.CultureInfo.InvariantCulture); if (DateTime.Today < cExpiration) { }
Comme sur votre question précédente, nous devons voir les entrées qui causent l'erreur, de préférence en tant que exemple de reproductible minimal .
L'erreur vous dit exactement ce qui se passe, il ne peut pas comprendre votre format DateTime. Alors maintenant, vous devez déterminer pourquoi, que ressemble à la chaîne date i>? Vous ne nous avez pas montré, faites-nous confiance à ce que ce n'est pas un bogue avec .NET. Tout simplement votre
Cheatexpiration code> n'est pas dans
AAAA / MM / DD HH: MM CODE> Format ... Qu'est-ce que c'est dans ce fichier exactement
Le fichier qu'il charge est le même format DateTime. C'est ce que le fichier contient, 2032/02/11 03:21
Pouvez-vous casser pointe la ligne
DateTime Cexpiration = Coller et coller exactement quelle est la variable
textbox9.text code> prenez une capture d'écran de celui-ci si vous en avez besoin aussi
@Thegeneral Lien