我不明白爲什麼在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