【问题标题】: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,因为它就是那种转换器。

    不过,你应该小心文化问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      • 2021-04-13
      • 2014-11-15
      相关资源
      最近更新 更多