Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 日期时间类型转换器_C#_C# 3.0_Typeconverter - Fatal编程技术网

C# 日期时间类型转换器

C# 日期时间类型转换器,c#,c#-3.0,typeconverter,C#,C# 3.0,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.DateT

我有下面的代码将字符串转换为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
,因为它就是这种转换器

不过,你应该注意文化问题