谁能解释为什么以下代码段返回 true?
根据“d”自定义格式说明符的文档,“一位数日的格式没有前导零。” 那么,当我给它一个带前导零的个位数日期时,为什么 TryParseExact 不会失败?
DateTime x;
return DateTime.TryParseExact
(
"01/01/2001",
@"d\/MM\/yyyy",
null,
System.Globalization.DateTimeStyles.None,
out x
);
更新
我想也许我最初并不清楚。我真正想要了解的是:为什么 TryParseExact 接受一些不完全匹配的值?从我看到的所有文档中,'d' 匹配 '01' 和 '1' 就像 'MM' 匹配 'March' 和 '03' 一样是一个错误。这里的问题不在于这些值是等价的,而是它们与格式不匹配。
相关的文档片段是:
从TryParseExact:字符串表示的格式必须与指定的格式完全匹配。
来自'd' 说明符:一位数的日期格式不带前导零。
对我来说,'01' 的前导 0 似乎非常清楚,因此与 'd' 不完全匹配。