Если вы не знаете формат, используйте:
DateTime d = DateTime.Parse(dateString);
Это пытается проанализировать строковое представление даты и времени, используя правила форматирования текущей культуры (например, английский (США) "en-US", немецкий "de-DE", ...). Он пытается игнорировать нераспознанные данные и заполняет пропущенные значения для года, месяца и дня текущей датой (например, при разборе только строки, содержащей время).
Если вы знаете, что используемая культура строки отличается от текущей, вы можете указать используемую культуру:
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
DateTime d = DateTime.Parse(dateString, culture);
Вы должны всегда окружать преобразование блоком try-catch, поскольку строка должна соответствовать распознанному шаблону. Кроме того, вы также можете проверить правильность строки с помощью метода DateTime.TryParse(dateString, out dateTime)
, который возвращает true в случае успеха, а результат в dateTime
; или ложь в противном случае.
Если вы знаете точный формат, вы можете использовать
DateTime d = DateTime.ParseExact(dateString, "dd/MM/yyyy", null);
(См. Пользовательские строки формата даты и времени с сайта MSDN для других строк формата).