Ваша проблема не в разборе, а в выводе. Посмотрите, как ToString работает для DateTime, или используйте этот пример:
using System;
class Program
{
static void Main(string[] args)
{
DateTime dt = DateTime.Parse("09/12/2009");
Console.WriteLine(dt.ToString("dd/MM/yyyy"));
}
}
Или чтобы получить что-то в вашем регионе:
Console.WriteLine(dt.ToShortDateString());
Обновление: Ваше обновление вопроса подразумевает, что вы еще не полностью поняли мой ответ, поэтому я добавлю немного больше объяснений. В .NET нет даты - есть только DateTime. Если вы хотите представить дату в .NET, вы делаете это, сохраняя время полуночи в начале этого дня. Время всегда должно быть сохранено, даже если оно вам не нужно. Вы не можете удалить это. Важным моментом является то, что когда вы отображаете этот DateTime для пользователя, вы показываете ему только часть Date.