我有下面的代码将一个字符串转换为类型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
,因为这是一种转换器也。
你应该小心的文化问题虽然。