DateTime TypeConverter

我有下面的代码将字符串转换为类型T.它适用于所有其他类型,但是当T是DateTime类型时给出错误。

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

我传了一个字符串

 obj = "09/09/2009" 

它抛出一个错误{“’DateTimeConverter’无法将’System.String’转换为’System.DateTime’。”}

如果您知道要获取字符串,则可以使用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因为它是那种转换器。

你应该小心文化问题。