[英]DateTime.TryParseExact() is returning mixed results
我正在尝试解析一个包含一些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");
我的输出是:
假
假
假
假
真正
真正
真正
真正
其余的都是假的......
任何帮助解决这个问题将不胜感激。
在您的情况下, 只有当您的字符串具有相同的分钟和月份值时,才会对其进行解析。
这就是为什么只有这些值成功解析的原因。
2015-02-27 01:02:05
2015-02-27 01:02:15
2015-02-27 01:02:36
2015-02-27 01:02:51
顺便说一下,当我的意思是成功时,这并不意味着它返回正确的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
这是基于您的字符串的错误值。
在你的情况下,正确的格式应该是yyyy-MM-dd HH:mm:ss
。
改变这一行并检查
if (DateTime.TryParseExact(line, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeUniversal, out DateTime))
using (StreamReader Date = new StreamReader("C:\\DateParse.txt")
while((line = Date.ReadLine()) != null)
if (DateTime.TryParseExact(line.Trim(), "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeUniversal, out DateTime))
Console.WriteLine("True");
else
Console.WriteLine("False");
使用line.Trim()
和yyyy-MM-dd HH:mm:ss
其中MM
表示月份, mm
表示分钟
只需将mm mont更改为MM即可
DateTime.TryParseExact(line, "yyyy-MM-dd HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeUniversal, out DateTime)
它会起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.