为什么要使用IFormatProvider
的DateTime.ParseExact
,如果已经有一个格式参数?
DateTime.ParseExact(inputString, format, cultureInfo);
Jon Skeet.. 7
format参数说明要使用的模式 - 但它没有说明要使用哪个日历,月份名称,短日期格式等.这取决于IFormatProvider
.
例如,假设您想要使用模式解析值"dd MMMM yyyy"
- 您希望哪个月份名称可以使用?如果您使用的是月份名称"二月",但是您运行的是具有法语系统文化的计算机,那么它将失败 - 您需要指定英语文化(或不变文化)才能使其成为工作.同样,您可以指定一种模式"d"
来表示短日期格式 - 但是哪种短日期格式?
即使您使用的日历也受格式提供者的影响:可以在两种文化中将值解析为相同的年,月和日值 - 但这些值的含义在公历中与公历中的差异非常大,例.
format参数说明要使用的模式 - 但它没有说明要使用哪个日历,月份名称,短日期格式等.这取决于IFormatProvider
.
例如,假设您想要使用模式解析值"dd MMMM yyyy"
- 您希望哪个月份名称可以使用?如果您使用的是月份名称"二月",但是您运行的是具有法语系统文化的计算机,那么它将失败 - 您需要指定英语文化(或不变文化)才能使其成为工作.同样,您可以指定一种模式"d"
来表示短日期格式 - 但是哪种短日期格式?
即使您使用的日历也受格式提供者的影响:可以在两种文化中将值解析为相同的年,月和日值 - 但这些值的含义在公历中与公历中的差异非常大,例.