首页 > 解决方案 > C# 不将 'dd-MMM-yyyy' 识别为有效日期时间

问题描述

我在 C# 项目中有一个函数,它接受格式为“dd-MMM-yyyy”的字符串作为日期,因此示例为“10-MAR-2021”。

我需要将该字符串转换为日期时间对象,但我尝试的一切都会导致

字符串 '10-‎Mar-2021' 未被识别为有效的日期时间。

我努力了

DateTime start = DateTime.ParseExact(startdate, "dd-MMM-yyyy", System.Globalization.CultureInfo.InvariantCulture);

DateTime start = Convert.ToDateTime(startdate);

DateTime start = DateTime.Parse(startdate);

他们都抛出了同样的错误。这在 .Net 4.6 中不是问题,但是自从升级到 .Net 5 后,日期格式突然变成了一个问题。

有任何想法吗?

标签: c#datetime.net-5

解决方案


我认为您在第一个破折号后插入了一些奇怪的字符。当我复制粘贴异常中返回的字符串“10-‎Mar-2021”时,我得到了同样的错误。

尝试

char[] charArray = startdate.ToCharArray();

和调试。我得到 charArray[3] 字符,ASCII 码为 8206。

当我不复制粘贴而是自己编写 startdate 字符串时,该代码对我有用。


推荐阅读