"dMMyyHHmmss"格式的DateTime.ParseExact不起作用(c#)

joa*_*eza 2 c# datetime date date-parsing

我有一个日期在日志文件中使用以下格式:"dMMyyHHmmss".

因为如果找到的格式不是那个,我想抛出一个异常,我正在使用DateTime.ParseExact.问题是我收到了一个FormatException,其中包含以下消息:

'String'.....'未被识别为有效的DateTime.

模拟这个的代码是:

var format = "dMMyyHHmmss";

var date = new DateTime(2018, 1, 1, 1, 1, 1);
var strDate = date.ToString(format);
date = DateTime.ParseExact(strDate, format, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

有什么想法我不能使用那种格式?

Ste*_*eve 5

那是因为LL解析器的格式有些模棱两可.

你得到的字符串是 10118010101

解析器读取1和是这样,确定它是一个1用于d
然后读取0和困惑,它应该是10d还是应1d01MM

如果在中间添加分隔符或使用dd而不是d使语法明确,则可以使解析器满意