0

次のような日付文字列を提供するログファイルを使用しています。

09/Feb/2012:00:38:48

MSDN サイトなど、日付の変換に関するオンラインのさまざまなページを見てきましたが、このような日付を示すページはありません。

文字列を次のように手動で再フォーマットする必要がありますか?

2012-02-09T00:38:48.0000000

または、これを実際に変換する方法はありますか?

4

2 に答える 2

6

DateTime.TryParseExactを使用して、指定した任意の形式から文字列を解析して DateTime にすることができます。このMSDN refの下部に多数の例があります。

于 2012-03-06T21:52:30.360 に答える
3

AdaTheDevDateTime.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-たとえば、現在のカルチャを使用する必要があるようには見えません。

(もちろん、代わりにNoda Timeを使用することもできます;)

于 2012-03-06T21:57:56.873 に答える