Преобразование пользовательского формата даты (строки) в дату и время
У меня есть большой набор (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
.
Ответ 2
Вы можете использовать DateTime.ParseExact и передать формат в этот метод, используя пользовательские строки формата даты и времени. Это позволит вам анализировать дату за один проход.
Ответ 3
Эта строка DateTime действительна для DateTime.Parse()
(или .TryParse()
)
Что касается действительно настраиваемой строки, которую нельзя обрабатывать .Parse(), вы, вероятно, правы, вам нужно вытянуть свою строку и собрать ее полезным образом.