Преобразование необычной строки DateTime в объект DateTime - PullRequest
0 голосов
/ 07 марта 2012

Я работаю с файлом журнала, который дает мне строку даты, которая выглядит так:

09/Feb/2012:00:38:48

Я просматривал различные страницы в Интернете о датах конвертации, такие как сайт MSDN , но ни одна из них не отображает дату, подобную этой.

Нужно ли вручную переформатировать строку, чтобы она выглядела примерно так:

2012-02-09T00:38:48.0000000

Или есть способ действительно преобразовать это?

Ответы [ 2 ]

6 голосов
/ 07 марта 2012

Вы можете использовать DateTime.TryParseExact для анализа строки в DateTime из любого формата, который вы укажете. Ниже приведено множество примеров: MSDN ref .

3 голосов
/ 07 марта 2012

Как утверждает AdaTheDev, DateTime.TryParseExact - это путь вперед. В соответствии со страницей MSDN на «пользовательские строки формата даты и времени» вы хотите MMM для сокращенного названия месяца.

using System;
using System.Globalization;

class Test
{
    static void Main() 
    {
        string text = "09/Feb/2012:00:38:48";
        DateTime value;
        if (DateTime.TryParseExact(text, "dd/MMM/yyyy:HH:mm:ss",
                                   CultureInfo.InvariantCulture,
                                   DateTimeStyles.None,
                                   out value))
        {
            Console.WriteLine("Success! {0}", value);
        }
        else
        {
            Console.WriteLine("Failed");
        }
    }
}

Обратите внимание на использование CultureInfo.InvariantCulture - не похоже, что вы должны использовать текущую культуру, например.

(Конечно, вы могли бы использовать Время Ноды ;)

...