我不明白为什么 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
如果我明确定义结构,为什么我需要提供提供者?
最佳答案
仍然存在依赖于文化的格式说明符,例如时间分隔符 (:) 和日期分隔符 (/)。那些不匹配特定字符,而是匹配文化中指定的分隔符。
关于c# - DateTime.ParseExact 上的 CultureInfo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14850848/