我尝试调试,并说“字符串是/未被识别为有效的DateTime值”,我在本网站上找到了大约20条与此有关的帖子,并尝试了其中的每一项,都没有任何不同,或者它给了额外的错误“ 0无效值”。我究竟做错了什么?因为它不显示任何错误,但是每次都会停止调试并给出错误。
dToday2和cExpiration我想从字符串转换为DateTime值,然后在代码的底行进行比较。
请注意,cExpiration来自textBox9.text,它是来自已保存文件的直接readAllText流,因此我希望它将已保存的文件解析为DateTime。
string cheatExpiration = System.IO.File.ReadAllText(@"C:\xWQcixf07xES5yf5V5A6\UKI9nRuJgZA611zQCyIq.txt");
DateTime dateToday = DateTime.Today;
string dateToday2 = DateTime.Today.ToString();
textBox8.Text = dateToday2;
textBox9.Text = cheatExpiration;
DateTime cExpiration = DateTime.ParseExact(textBox9.Text, "yyyy/MM/dd HH:mm", System.Globalization.CultureInfo.InvariantCulture);
DateTime dToday2 = DateTime.ParseExact(dateToday2, "yyyy/MM/dd HH:mm", CultureInfo.InvariantCulture);
if (dToday2 < cExpiration)
{
}
我希望它能够解析textBox9.text,例如2019/01/17 01:01,但我不知道,因为我什至没有使用它的工作经验,所以我不确定。
更新
答案 0 :(得分:2)
您的问题与我们所想的完全一样,您的日期时间不是"yyyy/MM/dd HH:mm"
格式,而是 IS "yyyy/MM/dd HH:mm\r\n"
那么我们该如何解决呢?我们可以使用String.Trim
方法,该方法将删除字符串中的所有空格或回车符
DateTime cExpiration = DateTime.ParseExact(cheatExpiration.Trim(), "yyyy/MM/dd HH:mm", System.Globalization.CultureInfo.InvariantCulture);
答案 1 :(得分:0)
您需要缩小有效输入和无效输入之间的问题。例如,这里的输入可以正常工作:
<svg id="robot" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" ...>
<script xlink:href="https://cdnjs.cloudflare.com/ajax/libs/snap.svg/0.5.1/snap.svg-min.js" />
<!-- grafic content -->
<script>
var s = Snap("#robot");
//...
</script>
</svg>
首先,添加更多您自己的代码,直到代码破裂为止,然后准确缩小导致其破裂的更改范围。
答案 2 :(得分:0)
通过将今天的日期转换为字符串,然后尝试再次将其转换回DateTime,您将面临其他解析错误。这是因为调用ToString()将在不同的区域和/或区域性中产生不同的输出。相反,只需直接比较DateTime.Today:
UserCtrl