我不明白为什么在DateTime.ParseExact
中有IFormatProvider的重载?CultureInfo on DateTime.ParseExact?
如果我定义正是应该如何解析(空间,隔板等),那么孤单应该没问题:
所有这些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("[email protected]@@[email protected]@@2013", "[email protected]@@[email protected]@@yyyy", provider, DateTimeStyles.None);
Console.WriteLine (t); //13/02/2013 00:00:00
那么,为什么我需要提供供应商如果我明确界定结构?
但我指定了哪些分隔符! (样品:@@@) – 2013-02-13 10:04:57
@罗伊,不是。你必须在单引号中加上'/'字符来实现这一点。您的第二个示例当前使用文化日期分隔符分析日期。 – 2013-02-13 10:05:58
@RoyiNamir:如果你使用'-',那么这是一个文字字符,但是如果你使用'/',那么它就是日期分隔符说明符,这是不同的文字。例如,使用瑞典的cutlure,日期分隔符是'-'字符。 – Guffa 2013-02-13 10:06:50