2009-07-23 53 views
3

我有下面的代碼將字符串轉換爲類型T.它適用於所有其他類型,但是當T是DateTime類型時會給出錯誤。DateTime TypeConverter

TypeConverter c = TypeDescriptor.GetConverter(typeof (T)); 
return (T) c.ConvertTo(obj, typeof (T)) 

我在一個字符串傳似

obj = "09/09/2009" 

它拋出一個錯誤{ 「 'DateTimeConverter' 是無法轉換 'System.String' 到 'System.DateTime的'。」}

回答

7

如果你知道你得到一個字符串,你可以使用TypeConverter.ConvertFromString來代替。這與DateTimeConverter,雖然我不知道爲什麼ConvertTo沒有。

舉例來說,這個工程:

TypeConverter c = TypeDescriptor.GetConverter(typeof (DateTime)); 
Console.WriteLine((DateTime) c.ConvertFromString("09/09/2009")); 

或者,只是ConvertFrom作品,以及:

TypeConverter c = TypeDescriptor.GetConverter(typeof (DateTime)); 
Console.WriteLine((DateTime) c.ConvertFrom("09/09/2009")); 

這將一個DateTime轉換,因爲這是一種轉換器也。

雖然你應該小心文化問題。