提供程序指定关于日期的文化特定格式信息。
例如,你可以通过在这些文化:
new CultureInfo("en-US") // USA
new CultureInfo("fr-FR") // France
new CultureInfo("it-IT") // Italy
new CultureInfo("de-DE") // Germany
并根据这些文化,你会得到的日期格式,如:
- EN-US:6/1/2009下午4点37分00秒
- FR-FR:01/06/2009十六点37分00秒
- 它-IT:01/06/2009 16.37.00
- DE-DE:01.06。 2009年16点37分00秒
又如:使用 “d” 格式,使用的en-US用于CultureInfo的当其表示M/d/yyyy的短日期模式,考虑:
DateTime dateValue;
string[] sampleDates = new[] { "31/8/2009", "8/31/2009" };
foreach (string currentDate in sampleDates)
{
bool result = DateTime.TryParseExact(currentDate, new[] {"d"},
new CultureInfo("en-US"),
DateTimeStyles.None,
out dateValue);
Console.WriteLine("{0}: {1}", currentDate, result ? "valid" : "invalid");
if (result)
{
Console.WriteLine("Result: {0}", dateValue);
}
Console.WriteLine();
}
输出:
31/8/2009: invalid
8/31/2009: valid
Result: 8/31/2009 12:00:00 AM
31/8/2009是无效的,因为它不适合M/d/YYYY的EN-US区域性的格式,而2009/8/31是有效的,因为它的作用。
我明白了。我的印象是IFormatProvider参数是一种“后备”格式匹配器,以防您传入的格式字符串不能完成这项工作。 说我尽量做到: TryParseExact( “18/06/2009”, “DDMMYYYY”,新的CultureInfo( “EN-AU”,DateTimeStyles.None,stringToWriteTo) 然后TryParseExact将返回false,没有什么会写入stringToWriteTo? – Andrew 2009-09-03 06:45:26