Как преобразовать строку в формат DateTime? Например, если у меня была строка как:Формат времени от строки?
"24/10/2008"
Как я понимаю, что в формат DateTime?
Как преобразовать строку в формат DateTime? Например, если у меня была строка как:Формат времени от строки?
"24/10/2008"
Как я понимаю, что в формат DateTime?
Использование DateTime.ParseExact:
string str = "24/10/2008";
DateTime dt = DateTime.ParseExact(str, "dd/MM/yyyy",
Thread.CurrentThread.CurrentCulture);
(Вы должны учитывать, что культура вы на самом деле хотите, чтобы разобрать его, по общему признанию.)
EDIT: Другие ответы указано «нулевой» в качестве третьего параметра - это эквивалентно использованию Thread.CurrentThread.CurrentCulture
.
Для других форматов см. "Custom Date and Time Format Strings" в MSDN.
Try что-то вроде
DateTime date = System.DateTime.ParseExact(str, "dd/MM/yyyy", null);
Для времени это может работать
DateTime date = System.DateTime.ParseExact(str, "HH:mm:ss", null);
string str = "24/10/2008";
DateTime dt = Convert.ToDateTime(str);
Если вы не знаете, формат, использование:
DateTime d = DateTime.Parse(dateString);
Это пытается проанализируйте строковое представление даты и времени, используя правила матирования текущей культуры (например, Английский (США) «en-US», немецкий «de-DE», ...). Он пытается игнорировать непризнанные данные и заполняет отсутствующие значения за год, месяц и день с текущей датой (если синтаксический анализ только строки, содержащей время, например).
Если вы знаете, что используемая культура строки отличается от текущей, вы можете указать культуру использовать:
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
DateTime d = DateTime.Parse(dateString, culture);
Вы должны ВСЕГДА suround преобразования с помощью примерки поймать блок, так как строка должна соответствовать признанному шаблону. В качестве альтернативы вы также можете проверить правильность строки с помощью метода DateTime.TryParse(dateString, out dateTime)
, который возвращает true при успешном завершении, а результат - в dateTime
; или false в противном случае.
Если вы знаете точный формат, вы можете использовать
DateTime d = DateTime.ParseExact(dateString, "dd/MM/yyyy", null);
(См Custom Date and Time Format Strings с сайта MSDN для других строк формата).
Я также предлагаю посмотреть на DateTime.TryParse
, если вы не знаете, в каком формате будет находиться строка даты. Таким образом, вы можете избежать передачи очень дорогих исключений в рутине Parse.
Я также вторая рекомендация Джона Скита использовать DateTime.ParseExact
если вы сделать знают точно какой формат дата будет каждый раз.
Существует также .TryParseExact(), чтобы получить лучшее из обоих миров. – 2008-10-24 14:44:45