gpt4 book ai didi

c# - DateTime.TryParseExact() 返回混合结果

转载 作者:行者123 更新时间:2023-11-30 19:25:25 24 4
gpt4 key购买 nike

我正在尝试解析一个巨大的文件,其中包含一些 DateTime 行。出于某种原因,DateTime.TryParseExact 仅在某些行而不是其他行上返回 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");

我的输出是:

False
False
False
False
True
True
True
True
And the rest are false...

如果您能帮助解决这个问题,我们将不胜感激。

最佳答案

因为 MM specifier几个月和mm specifier几分钟。

在您的情况下,如果您的字符串具有相同的分钟和月份值,它将被解析。

这就是只有这些值解析成功的原因。

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

关于c# - DateTime.TryParseExact() 返回混合结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28872365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com