ParseExact
делает именно это, анализирует строку, используя предоставленную вами точную спецификацию. И, согласно вашей спецификации, «18» не является действительным месяцем. Звучит так, как будто вы хотите поменять местами идентификаторы месяца и дня (и использовать только M
вместо MM
для месяца и использовать h
для сингл-ди git 12-часовых часов и добавить tt
для спецификации AM / PM):
DateTime.ParseExact(DateAndTime, "M/dd/yyyy h:mm:ss tt")
Как только он проанализирован как DateTime
, вы можете вывести значение в любом формате, который вам нравится. Например:
DT.ToString("dd/MM/yyyy HH:mm:ss")
Но ваш формат ввода очень сильно отличается от "дд / мм / гггг ЧЧ: мм: сс". Для синтаксического анализа вам необходимо соответствовать формату ввода, а не предполагаемому формату нисходящего потока.