gpt4 book ai didi

c# - DateTime.TryParseExact 不稳定的结果

转载 作者:行者123 更新时间:2023-12-04 02:08:29 26 4
gpt4 key购买 nike

使用下面的 DateTime.TryPaseExact 方法会在预期的时候给出不同的输出。

我从下面的代码中返回了以下格式:

2014-02-10 18:32:37
1402-10-18 17:23:00 (which is clearly incorrect)

如何返回 yyyy-MM-dd HH:mm:ss 格式?

static readonly string[] DateFormats = new string[] { "yyMMddHHmm", "yyyyMMddHHmm", "yyMMddHHmmss", "yyyy-MM-dd HH:mm:ss" };

DateTime date;
DateTime.TryParseExact("140211090915", DateFormats, CultureInfo.InvariantCulture,
DateTimeStyles.AssumeLocal, out date);

此外,如果有人可以解释为什么此 140211084947 输入返回预期格式而 140211090915 返回不需要的格式,我将不胜感激

最佳答案

很明显你错了。

当格​​式为 yyMMddHHmmss 时,它将前 2 位数字作为年份,在本例中为 14 并自动转换为2014

当格​​式类似于 yyyy.... 时,它将前 4 位数字作为年份,在您的情况下为 1402 .

来自 The "yy" Custom Format Specifier

In a parsing operation, a two-digit year that is parsed using the "yy" custom format specifier is interpreted based on the Calendar.TwoDigitYearMax property of the format provider's current calendar.

来自 Calendar.TwoDigitYearMax property

This property allows a 2-digit year to be properly translated to a 4-digit year. For example, if this property is set to 2029, the 100-year range is from 1930 to 2029. Therefore, a 2-digit value of 30 is interpreted as 1930, while a 2-digit value of 29 is interpreted as 2029.

作为 Marcin mentioned ,您的字符串输入与 yyMMddHHmmyyyy-MM-dd HH:mm:ss 格式不匹配。

您的 140211084947 字符串与 yyMMddHHmmss 格式匹配,但与 yyyyMMddHHmm 格式不匹配(因为 49不是有效时间)

关于c# - DateTime.TryParseExact 不稳定的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21695481/

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