2017-07-25 51 views
0

我有一个日期时间字符串,我试图解析到一个DateTime对象,但目前它不工作。我的两个DateTime对象从不设置它们的值。我相信这是非常简单的事情,我只是没有看到。有没有人看到这个代码有什么明显的错误?DateTime.TryParseExact不解析

string Issued = "Tue 25 Jul 2017 16:47:38"; 
string Expires = "Tue 25 Jul 2017 18:47:38"; 

string format = "ddd dd MMM yyyy HH:mm:ss"; 
DateTime dIssued; 
DateTime dExpires; 
DateTime.TryParseExact(Issued, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dIssued); 
DateTime.TryParseExact(Expires, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out dExpires); 
+3

你是如何确定'DateTime's的价值?我看到它的工作原理:https://dotnetfiddle.net/s9JVz7 –

+1

你的'Issued'和'Expired'字符串来自哪里?那里有没有可打印的字符?看起来像但不是空间的东西? – krillgar

+1

我跑的程序,似乎它工作正常? – Sach

回答

1

我跑你的代码,它似乎工作正常。所以我假设你为了模范而努力编码这些字符串。考虑在你的代码中放置一个break语句,在那里填充这两个值并检查它们以查看它们的内容。任何多余的空格或字符都会引发错误。

尝试.trim();也在您的字符串上。这基本上消除在开始任何空白和结束的字符串,因此它会改变我的字符串,像这样:

" cat " -> "cat"

+0

Ahhhh这正是它的原因。有一个额外的空间字符,我没有注意到在调试器中。谢谢! – mituw16

+1

@ mituw16调试非常有帮助。没有它,正确编程是非常困难的。 –

+1

我完全同意..我一直盯着调试器中最后45分钟的值,并且完全错过了字符串中的额外空间。需要第二双眼睛:) – mituw16