Преобразование пользовательского формата даты (строки) в дату и время - PullRequest
12 голосов
/ 30 июля 2010

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

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

Спасибо!

Ответы [ 3 ]

27 голосов
/ 30 июля 2010

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

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

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

2 голосов
/ 30 июля 2010

Вы можете использовать DateTime.ParseExact и передать формат в этот метод с использованием пользовательских строк формата даты и времени .Это позволит вам разобрать дату за один проход.

0 голосов
/ 30 июля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...