如果已经有格式参数,为什么还要使用IFormatProvider
in呢?DateTime.ParseExact
DateTime.ParseExact(inputString, format, cultureInfo);
如果已经有格式参数,为什么还要使用IFormatProvider
in呢?DateTime.ParseExact
DateTime.ParseExact(inputString, format, cultureInfo);
format 参数说明了要使用的模式——但它没有说明要使用的日历、月份名称、短日期格式等。这取决于IFormatProvider
.
例如,假设您想用模式解析一个值"dd MMMM yyyy"
——您希望哪个月份的名称起作用?如果您使用的月份名称为“February”,但您在系统文化为法语的机器上运行,它将失败 - 您需要指定英语文化(或不变文化)才能获得工作。同样,您可以指定一个模式"d"
来表示短日期格式 - 但哪种短日期格式?
即使您使用的日历也会受到格式提供程序的影响:该值可以在两种文化中解析为相同的年、月和日值 - 但这些值的含义在回历与公历中会有很大不同,因为例子。
一个简单的例子:/
/
不仅仅是一个字符,而是一个取决于文化的日期分隔符。