如何在DateTime.ParseExact中使用IFormatProvider

时间:2013-11-29 13:42:40

标签: c# datetime iformatprovider

如果已经有格式参数,我们为什么要在IFormatProvider中使用DateTime.ParseExact

DateTime.ParseExact(inputString, format, cultureInfo);

2 个答案:

答案 0 :(得分:7)

format参数说明要使用的模式 - 但它没有说明要使用哪个日历,月份名称,短日期格式等。这取决于IFormatProvider

例如,假设您想要使用模式"dd MMMM yyyy"解析一个值 - 您期望使用哪个月份名称?如果您使用的是月份名称“二月”,但是您运行的是具有法语系统文化的计算机,那么它将失败 - 您需要指定英语文化(或不变文化)才能使其成为工作。同样,您可以指定"d"的模式来表示短日期格式 - 但哪个短日期格式?

即使您使用的日历也受格式提供程序的影响:可以在两种文化中将值解析为相同的年,月和日值 - 但意味着例如,在公历中,这些值与公历中的差异会非常不同。

答案 1 :(得分:1)

一个简单的例子:/

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