Nope. No type Date, only exists DateTime. If this comes from a SQL Server 2008 table that uses a column Date, it will appear in DateTime. NET.
If you need to get this information, you will need to do it at the SQL level; by the time it boots in DataTable, it's too late.
, , :
DateTime dt = (DateTime)val;
return (dt == dt.Date) ? Formatter.GetDate(dt) : Formatter.GetDateTime(dt);