日期时间类型转换器(DateTime TypeConverter)

2019-09-20 13:13发布

我有下面的代码将一个字符串转换为类型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的’。”}

Answer 1:

如果你知道你得到一个字符串,可以使用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 ,因为这是一种转换器也。

你应该小心的文化问题虽然。



文章来源: DateTime TypeConverter