Требуемый формат
string format = "dd/M/yyyy";
Я не понимаю но почему-то разделите строку на конкатенацию, так как вы получите то же самое?
Если вход 12/4/2012, после раскола по '/', вы получите 12, 4, 2012, а затем объединить их обратно, чтобы получить "12/4/2012". Почему это?
Кроме того, если вам действительно нужно это разделение, вы можете хранить в в массив, так что вам не нужно разделить его 3 раза:
var splits = lbl_TransDate.Text.Split('/');
DateTime.ParseExact(splits[0] + "/" + splits[1] + "/" + splits[2], ...);
Если вы не доверяете вход, шпагат массив не может быть Length = 3, и его больше, вы можете использовать DateTime.TryParseExact
EDIT вы можете использовать перегрузку с несколькими форматами Таким образом, если входной сигнал может быть 12/4/2012 или 12/04/2012, вы можете дать оба формата
var formats = new[] {"dd/M/yyyy","dd/MM/yyyy"};
var date = DateTime.ParseExact("12/4/2012", formats,
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.AssumeLocal);
из простого любопытства, почему не просто ' DateTime.ParseExact (lbl_TransDate.Text, format, CultureInfo.InvariantCulture) '? – Vlad
:) это не мой код, просто я тестирую эту часть –
Вы проверили его с помощью этого кода 'DateTime dt; строка Temp1 = «Ваша дата»; if (DateTime.TryParse (Temp1, out dt)) { // Если это действительная дата string date = dt.ToShortDateString(); string time = dt.ToShortTimeString(); } ' – Pankaj