C# 不将 'dd-MMM-yyyy' 识别为有效日期时间

C# Does Not Recognize 'dd-MMM-yyyy' as Valid Datetime

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

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

String '10-‎Mar-2021' was not recognized as a valid DateTime.

我试过了

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 后,日期格式突然成了问题。

有什么想法吗?

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

尝试

char[] charArray = startdate.ToCharArray();

并调试。我得到带有 ASCII 码 8206 的 charArray[3] 字符。

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