Вот два пути, по которым вы можете пойти:
C # (как указано выше)
DateTime.ParseExact
имеет перегрузку , которая позволяет вампередать несколько строк формата.Он будет использовать первый, который работает.DateTime.TryParseExact
также имеет эту перегрузку.DateTime.Parse
нет.
string[] formats = {"dd/MM/yyyy HH:mm:ss", "dd/MM/yyyy hh:mm:ss tt"};
DateTime Timestamp = DateTime.ParseExact(inputDate, formats, CultureInfo.InvariantCulture, DateTimeStyles.None);
Oracle
Попросите Oracle проверить AM или PM и соответствующим образом скорректировать строку формата.Это необработанный Оракул;Я оставлю вам строение строки:
TO_DATE(val,
CASE WHEN REGEXP_LIKE(val, '(AM|PM)')
THEN 'MM/DD/YYYY HH:MI:SS AM'
ELSE 'MM/DD/YYYY HH24:MI:SS'
END)
Любые проблемы с кодом дайте мне знать.Я не на машине, где я мог бы проверить эти фрагменты.