DateTime.TryParseExact()返回混合结果

Pin*_*tan 2 c# datetime tryparse

我正在尝试解析一个包含一些DateTime线的巨大文件.由于某种原因,DateTime.TryParseExact仅在某些行上返回true而不在其他行上返回true.
我的DateParse.txt文件看起来像这样:

2015-02-27 01:01:30
2015-02-27 01:01:43
2015-02-27 01:01:53
2015-02-27 01:02:05
2015-02-27 01:02:15
2015-02-27 01:02:36
2015-02-27 01:02:51
2015-02-27 01:03:04
2015-02-27 01:03:21
2015-02-27 01:03:36
2015-02-27 01:03:46
2015-02-27 01:04:01
2015-02-27 01:04:13
2015-02-27 01:04:29
2015-02-27 01:04:40

string line;  
DateTime DateTime;  
    using (StreamReader Date = new StreamReader("C:\\DateParse.txt")  
        while((line = Date.ReadLine()) != null)  
            if (DateTime.TryParseExact(line, "yyyy-mm-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeUniversal, out DateTime))  
                Console.WriteLine("True");  
            else  
                Console.WriteLine("False");  
Run Code Online (Sandbox Code Playgroud)

我的输出是:

False
False
False
False
True
True
True
True
其余都是假的......

任何帮助解决这个问题将不胜感激.

Son*_*nül 5

由于MM数月,mm几分钟.

在您的情况下,只有当您的字符串具有相同的分钟和月份值时,才会对其进行解析.

这就是为什么只有这些值成功解析的原因.

2015-02-27 01:02:05
2015-02-27 01:02:15
2015-02-27 01:02:36
2015-02-27 01:02:51
Run Code Online (Sandbox Code Playgroud)

顺便说一句,当我的意思是成功时,这并不意味着它返回正确的DateTime价值.由于您没有提到任何月份的yyyy-mm-dd HH:mm:ss格式DateTime部分1,因此默认情况下您的月份部分.这就是为什么在解析操作后它们的DateTime值会是;

2015-01-27 01:02:05
2015-01-27 01:02:15
2015-01-27 01:02:36
2015-01-27 01:02:51
Run Code Online (Sandbox Code Playgroud)

这是基于您的字符串的错误值.

在您的情况下,正确的格式应该是yyyy-MM-dd HH:mm:ss.