gpt4 book ai didi

c# - 如何将 MMMdyyyyhhmmtt 格式的日期时间字符串转换为日期时间对象?

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:37 25 4
gpt4 key购买 nike

我试过如下:

DateTime.ParseExact("Feb520161000PM", 
"MMMdyyyyhhmmtt", CultureInfo.InvariantCulture)

但它给出了 FormatException

有趣的是

DateTime.ParseExact(DateTime.Now.ToString("MMMdyyyyhhmmtt"), "MMMdyyyyhhmmtt", 
CultureInfo.InvariantCulture)

这也给出了格式异常。

最佳答案

Alexei's answer说得对,如果你允许的话,我想解释得更深入一些..

您认为 5 应该与 d 说明符匹配,对吗?但这不是 DateTime.ParseExact 的工作方式 under the hood .

The "d" custom format specifier表示从 131 的数字,此说明符将在您的字符串中映射 52只是 5 。这就是您的代码抛出 FormatException 的原因。

如您所见,除非您对其进行一些字符串操作,否则无法解析您的字符串格式。

在这种情况下,.NET 团队 suggests要么使用像 05 这样的两位数字形式,要么为您的日期和时间值插入分隔符。

您可以创建一个自定义方法来解析此MMMdyyyyhhmmtt 格式,解析此类格式化字符串;

public static DateTime? ParseDate_MMMdyyyyhhmmtt(string date)
{
if (date == null)
return null;
if (date.Length < 14)
return null;
if (date.Length == 14)
date = date.Insert(3, "0");
DateTime dt;
if (DateTime.TryParseExact(date, "MMMdyyyyhhmmtt",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
return dt;
return null;
}

关于c# - 如何将 MMMdyyyyhhmmtt 格式的日期时间字符串转换为日期时间对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35229843/

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