If you know you are getting a string, you can use TypeConverter.ConvertFromString. This works with DateTimeConverter, although I do not know why ConvertToit does not.
For example, this works:
TypeConverter c = TypeDescriptor.GetConverter( typeof (DateTime) );
Console.WriteLine((DateTime) c.ConvertFromString("09/09/2009"));
As an alternative, only works ConvertFrom:
TypeConverter c = TypeDescriptor.GetConverter( typeof (DateTime) );
Console.WriteLine((DateTime) c.ConvertFrom("09/09/2009"));
DateTime, .
.