【发布时间】:2013-02-17 21:16:28
【问题描述】:
我不明白为什么 DateTime.ParseExact 中的 IFormatProvider 会过载?
如果我准确地定义它应该如何解析(空格、分隔符等),那么应该没有问题:
所有这 3 个例子都显示了相同的结果:
示例 1
CultureInfo provider =CultureInfo.CreateSpecificCulture("en-US");
var t= DateTime.ParseExact("13-2-2013", "d-M-yyyy", provider, DateTimeStyles.None);
Console.WriteLine (t); //13/02/2013 00:00:00
示例 2
CultureInfo provider =CultureInfo.CreateSpecificCulture("en-US");
var t= DateTime.ParseExact("13/2/2013", "d/M/yyyy", provider, DateTimeStyles.None);
Console.WriteLine (t); //13/02/2013 00:00:00
示例 3
CultureInfo provider =CultureInfo.CreateSpecificCulture("en-US");
var t= DateTime.ParseExact("13@@@2@@@2013", "d@@@M@@@yyyy", provider, DateTimeStyles.None);
Console.WriteLine (t); //13/02/2013 00:00:00
如果我明确定义结构,为什么我需要提供提供者?
【问题讨论】: