我的日志文件格式如下:“ dMMyyHHmmss”。
我想抛出一个异常,如果找到的格式不完全是那个格式,我正在使用DateTime.ParseExact。问题是,我收到了带有以下消息的FormatException:
“字符串'.....”未被识别为有效的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);
有人想为什么我不能使用这种格式?
答案 0 :(得分:5)
那是因为格式对于LL解析器有些含糊。
您得到的字符串是10118010101
解析器读取1
并为1
确定其d
然后,它读取0
并感到困惑,对于10
应该是d
,对于1
应该是d
,对于{{ 1}}?
如果在两者之间添加定界符,或者使用01
而不是MM
来使语法清晰,则可以使解析器满意