【问题标题】:DateTime TypeConverter日期时间类型转换器
【发布时间】:2009-07-23 20:12:04
【问题描述】:
我有以下代码将字符串转换为 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'。”}
【问题讨论】:
标签:
c#
c#-3.0
typeconverter
【解决方案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,因为它就是那种转换器。
不过,你应该小心文化问题。