Преобразование пользовательского формата даты (строки) в дату и время

У меня есть большой набор (100+ миллионов) наблюдений с датой, представленной как пользовательский строковый формат. Мы не генерировали строки даты, мне просто нужно преобразовать строку даты в тип datetime.

Как мне преобразовать дату строки (например, 12 июня 2010 г.) в дату-время? Мои мысли - разобрать строку на компоненты, собрать их в правильном порядке и передать эту строку конструктору datetime. Есть ли способ передать datetime() пользовательскую строку формата даты вместо?

Спасибо!

Ответ 1

Взгляните на DateTime.ParseExact, например

var dateTime = DateTime.ParseExact(
    "12 JUN 2010", 
    "dd MMM yyyy", 
    CultureInfo.InvariantCulture);

Вы также можете указать четвертый параметр для установки Kind даты/времени, например, если они являются датой/временем UTC, тогда вы, вероятно, захотите указать DateTimeStyles.AssumeUniversal.

Ответ 3

Эта строка DateTime действительна для DateTime.Parse() (или .TryParse())

Что касается действительно настраиваемой строки, которую нельзя обрабатывать .Parse(), вы, вероятно, правы, вам нужно вытянуть свою строку и собрать ее полезным образом.