3

如果已经有格式参数,为什么还要使用IFormatProviderin呢?DateTime.ParseExact

DateTime.ParseExact(inputString, format, cultureInfo);
4

2 回答 2

8

format 参数说明了要使用的模式——但它没有说明要使用的日历、月份名称、短日期格式等。这取决于IFormatProvider.

例如,假设您想用模式解析一个值"dd MMMM yyyy"——您希望哪个月份的名称起作用?如果您使用的月份名称为“February”,但您在系统文化为法语的机器上运行,它将失败 - 您需要指定英语文化(或不变文化)才能获得工作。同样,您可以指定一个模式"d"来表示短日期格式 - 但哪种短日期格式?

即使您使用的日历也会受到格式提供程序的影响:该值可以在两种文化中解析为相同的年、月和日值 - 但这些值的含义在回历与公历中会有很大不同,因为例子。

于 2013-11-29T13:44:36.363 回答
1

一个简单的例子:/

/不仅仅是一个字符,而是一个取决于文化的日期分隔符。

于 2013-11-29T13:45:55.680 回答